Mock Version: 2.9 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/neuron.spec'], chrootPath='/var/lib/mock/fedora-rawhide-x86_64-1611696566.830929/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.5l50655e:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.5l50655e:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '6f5faf5637b341e1bf149a119c650f44', '-D', '/var/lib/mock/fedora-rawhide-x86_64-1611696566.830929/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.5l50655e:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/neuron.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0'} and shell False 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 Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/neuron.spec'], chrootPath='/var/lib/mock/fedora-rawhide-x86_64-1611696566.830929/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.5l50655e:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.5l50655e:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '54c9c92255854d8ba3802c89f7794d92', '-D', '/var/lib/mock/fedora-rawhide-x86_64-1611696566.830929/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.5l50655e:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/neuron.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0'} and shell False 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 Child return code was: 0