==> Building on vanilluxe ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/gnutls ./ .SRCINFO 1,100 100% 0.00kB/s 0:00:00 1,100 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=12/14) .nvchecker.toml 71 100% 69.34kB/s 0:00:00 71 100% 69.34kB/s 0:00:00 (xfr#2, to-chk=11/14) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=10/14) PKGBUILD 2,096 100% 2.00MB/s 0:00:00 2,096 100% 2.00MB/s 0:00:00 (xfr#4, to-chk=9/14) REUSE.toml 389 100% 379.88kB/s 0:00:00 389 100% 379.88kB/s 0:00:00 (xfr#5, to-chk=8/14) config 303 100% 295.90kB/s 0:00:00 303 100% 295.90kB/s 0:00:00 (xfr#6, to-chk=7/14) gnutls-3.8.11-2.log 856 100% 835.94kB/s 0:00:00 856 100% 835.94kB/s 0:00:00 (xfr#7, to-chk=6/14) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE keys/ keys/pgp/ keys/pgp/462225C3B46F34879FC8496CD605848ED7E69871.asc 3,955 100% 643.72kB/s 0:00:00 3,955 100% 643.72kB/s 0:00:00 (xfr#8, to-chk=1/14) keys/pgp/5D46CB0F763405A7053556F47A75A648B3F9220C.asc 669 100% 93.33kB/s 0:00:00 669 100% 93.33kB/s 0:00:00 (xfr#9, to-chk=0/14) sent 7,222 bytes received 251 bytes 4,982.00 bytes/sec total size is 9,435 speedup is 1.26 ==> Ensuring required PGP keys are present...  -> Checking for 462225C3B46F34879FC8496CD605848ED7E69871... ==> Patching arch to riscv64... ==> Running pkgctl build --arch riscv64 --repo extra on remote host... ==> WARNING: unsupported architecture: riscv64 ==> Building gnutls  -> repo: extra  -> arch: riscv64  -> worker: felix-0 ==> Building gnutls for [extra] (riscv64) ]2;🔵 Container arch-nspawn-1913651 on vanilluxe.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... error: restricting filesystem access failed because landlock is not supported by the kernel! :: Starting full system upgrade... resolving dependencies... looking for conflicting packages... Package (3) Old Version New Version Net Change Download Size core/iana-etc 20251030-1 20251114-1 0.00 MiB 0.39 MiB core/libnghttp3 1.12.0-1 1.13.1-1 0.00 MiB 0.08 MiB core/sqlite 3.51.0-1 3.51.1-1 0.01 MiB 2.50 MiB Total Download Size: 2.98 MiB Total Installed Size: 19.83 MiB Net Upgrade Size: 0.01 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... sqlite-3.51.1-1-riscv64 downloading... iana-etc-20251114-1-any downloading... libnghttp3-1.13.1-1-riscv64 downloading... error: restricting filesystem access failed because landlock is not supported by the kernel! checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... upgrading iana-etc... upgrading libnghttp3... upgrading sqlite... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-0]...done ==> Making package: gnutls 3.8.11-2 (Sat Nov 29 23:30:14 2025) ==> Retrieving sources...  -> Downloading gnutls-3.8.11.tar.xz... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 1 6777k 1 77824 0 0 33336 0 0:03:28 0:00:02 0:03:26 33329 6 6777k 6 436k 0 0 131k 0 0:00:51 0:00:03 0:00:48 131k 20 6777k 20 1388k 0 0 323k 0 0:00:20 0:00:04 0:00:16 323k 32 6777k 32 2208k 0 0 421k 0 0:00:16 0:00:05 0:00:11 443k 40 6777k 40 2716k 0 0 411k 0 0:00:16 0:00:06 0:00:10 513k 47 6777k 47 3188k 0 0 422k 0 0:00:16 0:00:07 0:00:09 598k 54 6777k 54 3704k 0 0 451k 0 0:00:15 0:00:08 0:00:07 669k 65 6777k 65 4472k 0 0 468k 0 0:00:14 0:00:09 0:00:05 588k 77 6777k 77 5252k 0 0 515k 0 0:00:13 0:00:10 0:00:03 615k 88 6777k 88 5968k 0 0 531k 0 0:00:12 0:00:11 0:00:01 703k 100 6777k 100 6777k 0 0 559k 0 0:00:12 0:00:12 --:--:-- 782k  -> Downloading gnutls-3.8.11.tar.xz.sig... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0 100 566 100 566 0 0 218 0 0:00:02 0:00:02 --:--:-- 218  -> Found config ==> Validating source files with sha256sums... gnutls-3.8.11.tar.xz ... Passed gnutls-3.8.11.tar.xz.sig ... Skipped config ... Passed ==> Verifying source file signatures with gpg... gnutls-3.8.11.tar.xz ... Passed ]2;🔵 Container arch-nspawn-1914795 on vanilluxe.felixc.at\==> Making package: gnutls 3.8.11-2 (Sat Nov 29 23:30:51 2025) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (12) New Version Net Change Download Size extra/docbook-xml 4.5-11 1.96 MiB extra/docbook-xsl 1.79.2-9 26.32 MiB core/efivar 39-1 0.47 MiB 0.14 MiB core/glib2-docs 2.86.1-1 66.15 MiB 4.27 MiB extra/libxslt 1.1.43-2 0.75 MiB core/mpdecimal 4.0.1-1 0.31 MiB core/python 3.13.7-1 281.87 MiB extra/python-lxml 6.0.2-1 5.58 MiB extra/python-pygments 2.19.2-1 14.38 MiB extra/gtk-doc 1.35.1-1 3.09 MiB core/net-tools 2.10-3 0.46 MiB 0.14 MiB extra/tpm2-tools 5.7-1 1.45 MiB 0.72 MiB Total Download Size: 5.28 MiB Total Installed Size: 402.80 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... glib2-docs-2.86.1-1-riscv64 downloading... tpm2-tools-5.7-1-riscv64 downloading... net-tools-2.10-3-riscv64 downloading... efivar-39-1-riscv64 downloading... error: restricting filesystem access failed because landlock is not supported by the kernel! checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing docbook-xml... installing libxslt... Optional dependencies for libxslt python: Python bindings [pending] installing docbook-xsl... installing glib2-docs... installing mpdecimal... installing python... Optional dependencies for python python-setuptools: for building Python packages using tooling that is usually bundled with Python python-pip: for installing Python packages using tooling that is usually bundled with Python python-pipx: for installing Python software not packaged on Arch Linux sqlite: for a default database integration [installed] xz: for lzma [installed] tk: for tkinter installing python-lxml... Optional dependencies for python-lxml python-beautifulsoup4: support for beautifulsoup parser to parse not well formed HTML python-cssselect: support for cssselect python-html5lib: support for html5lib parser python-lxml-docs: offline docs python-lxml-html-clean: enable htmlclean feature installing python-pygments... installing gtk-doc... Optional dependencies for gtk-doc dblatex: PDF support installing net-tools... installing efivar... installing tpm2-tools... Optional dependencies for tpm2-tools tpm2-abrmd: user space resource manager :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h==> Retrieving sources...  -> Found gnutls-3.8.11.tar.xz  -> Found gnutls-3.8.11.tar.xz.sig  -> Found config ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Extracting gnutls-3.8.11.tar.xz with bsdtar ==> Starting prepare()... autoreconf: export WARNINGS= autoreconf: Entering directory '.' autoreconf: running: autopoint --force autopoint: using AM_GNU_GETTEXT_REQUIRE_VERSION instead of AM_GNU_GETTEXT_VERSION Copying file m4/build-to-host.m4 Copying file m4/gettext.m4 Copying file m4/host-cpu-c-abi.m4 Copying file m4/iconv.m4 Copying file m4/intlmacosx.m4 Copying file m4/lib-link.m4 Copying file m4/nls.m4 Copying file m4/po.m4 Copying file m4/progtest.m4 Copying file po/Makefile.in.in Copying file po/Makevars.template autoreconf: running: aclocal --force -I m4 -I src/gl/m4 -I lib/unistring/m4 --install aclocal: overwriting 'm4/libtool.m4' with '/usr/share/aclocal/libtool.m4' aclocal: overwriting 'm4/ltoptions.m4' with '/usr/share/aclocal/ltoptions.m4' aclocal: overwriting 'm4/ltversion.m4' with '/usr/share/aclocal/ltversion.m4' aclocal: overwriting 'm4/pkg.m4' with '/usr/share/aclocal/pkg.m4' autoreconf: configure.ac: tracing autoreconf: running: libtoolize --copy --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'. libtoolize: copying file 'build-aux/ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4/ltoptions.m4' libtoolize: copying file 'm4/ltsugar.m4' libtoolize: copying file 'm4/ltversion.m4' libtoolize: copying file 'm4/lt~obsolete.m4' autoreconf: configure.ac: not using Intltool autoreconf: running: gtkdocize --copy autoreconf: running: aclocal --force -I m4 -I src/gl/m4 -I lib/unistring/m4 --install autoreconf: running: /usr/bin/autoconf --force autoreconf: running: /usr/bin/autoheader --force autoreconf: running: automake --add-missing --copy --force-missing configure.ac:39: installing 'build-aux/compile' configure.ac:29: installing 'build-aux/missing' aminclude_static.am:52: warning: if $(CODE_COVERAGE_BRANCH_COVERAGE: non-POSIX variable name aminclude_static.am:52: (probably a GNU make extension) Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:59: warning: if $(CODE_COVERAGE_BRANCH_COVERAGE: non-POSIX variable name aminclude_static.am:59: (probably a GNU make extension) Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:63: warning: ':='-style assignments are not portable Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:64: warning: code_coverage_v_lcov_cap_$(V: non-POSIX recursive variable expansion Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:65: warning: code_coverage_v_lcov_cap_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:67: warning: code_coverage_v_lcov_ign_$(V: non-POSIX recursive variable expansion Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:68: warning: code_coverage_v_lcov_ign_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:70: warning: code_coverage_v_genhtml_$(V: non-POSIX recursive variable expansion Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:71: warning: code_coverage_v_genhtml_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:73: warning: code_coverage_quiet_$(V: non-POSIX recursive variable expansion Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:74: warning: code_coverage_quiet_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:78: warning: subst -,_,$(subst .,_,$(1: non-POSIX variable name aminclude_static.am:78: (probably a GNU make extension) Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:87: warning: addprefix --directory ,$(CODE_COVERAGE_DIRECTORY: non-POSIX variable name aminclude_static.am:87: (probably a GNU make extension) Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:87: warning: call code_coverage_sanitize,$(PACKAGE_NAME: non-POSIX variable name aminclude_static.am:87: (probably a GNU make extension) Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:88: warning: addprefix --directory ,$(CODE_COVERAGE_DIRECTORY: non-POSIX variable name aminclude_static.am:88: (probably a GNU make extension) Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:90: warning: addprefix --prefix ,$(CODE_COVERAGE_DIRECTORY: non-POSIX variable name aminclude_static.am:90: (probably a GNU make extension) Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:100: warning: ':='-style assignments are not portable Makefile.am:170: 'aminclude_static.am' included from here aminclude_static.am:100: warning: AM_DISTCHECK_CONFIGURE_FLAGS was already defined in condition TRUE, which includes condition CODE_COVERAGE_ENABLED ... Makefile.am:170: 'aminclude_static.am' included from here Makefile.am:23: ... 'AM_DISTCHECK_CONFIGURE_FLAGS' previously defined here doc/Makefile.am: installing 'build-aux/depcomp' autoreconf: Leaving directory '.' ==> Starting build()... checking build system type... riscv64-unknown-linux-gnu checking host system type... riscv64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether sleep supports fractional seconds... yes checking filesystem timestamp resolution... 0.01 checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking xargs -n works... yes checking whether UID '1000' is supported by ustar format... yes checking whether GID '1000' is supported by ustar format... yes checking how to create a ustar tar archive... gnutar *** *** Checking for compilation programs... checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking whether the compiler is clang... no checking for compiler option needed when checking for declarations... none checking whether make supports the include directive... yes (GNU style) checking dependency style of gcc... gcc3 checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for wchar.h... yes checking for minix/config.h... no checking for sys/socket.h... yes checking for arpa/inet.h... yes checking for features.h... yes checking for stdbool.h... yes checking for byteswap.h... yes checking for sys/param.h... yes checking for sys/time.h... yes checking for netdb.h... yes checking for netinet/in.h... yes checking for limits.h... yes checking for threads.h... yes checking for sys/mman.h... yes checking for pthread.h... yes checking for stdckdint.h... yes checking for sys/uio.h... yes checking for crtdefs.h... no checking for error.h... yes checking for stdio_ext.h... yes checking for termios.h... yes checking for sys/select.h... yes checking for endian.h... yes checking for sys/endian.h... no checking for langinfo.h... yes checking for xlocale.h... no checking for semaphore.h... yes checking for math.h... yes checking for sys/wait.h... yes checking for sys/ioctl.h... yes checking for sys/un.h... yes checking whether it is safe to define __EXTENSIONS__... yes checking whether _XOPEN_SOURCE should be defined... no checking how to run the C preprocessor... gcc -E checking for egrep -e... /usr/bin/grep -E checking for Minix Amsterdam compiler... no checking for ar... ar checking the archiver (ar) interface... ar checking for ar... (cached) ar checking for ranlib... ranlib checking for gcc option to support large files... none needed checking dependency style of gcc... gcc3 checking the archiver (ar) interface... (cached) ar checking for g++... g++ checking whether the compiler supports GNU C++... yes checking whether g++ accepts -g... yes checking for g++ option to enable C++11 features... none needed checking dependency style of g++... gcc3 checking for bison... bison -y checking for a sed that does not truncate output... /usr/bin/sed checking whether to build with code coverage support... no checking whether to enable maintainer-specific portions of Makefiles... yes checking for faketime... no checking for datefudge... no checking whether faketime program works... no checking for inline... inline checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for __get_cpuid_count... no checking for struct iovec.iov_base... yes checking for netinet/tcp.h... yes checking for stdatomic.h... yes checking for library containing __atomic_load_4... -latomic checking for threads.h... (cached) yes checking for sanitizer/asan_interface.h... yes checking for valgrind/memcheck.h... no checking for getrandom... yes checking for KERN_ARND... no checking for getentropy... no checking for nettle >= 3.10... yes checking for hogweed >= 3.10 ... yes checking for __gmpz_cmp in -lgmp... yes checking for libtasn1 >= 4.9... yes checking whether to use the included minitasn1... no checking whether to disable strict DER time encodings for backwards compatibility... no checking whether to allow SHA1 as an acceptable hash for cert digital signatures... yes checking whether to disable the SSL 3.0 protocol... yes checking whether to disable the SSL 2.0 client hello... no checking whether to disable DTLS-SRTP extension... no checking whether to disable ALPN extension... no checking whether to enable TLS heartbeat support... no checking whether to enable SRP authentication support... no checking whether to disable PSK authentication support... no checking whether to disable anonymous authentication support... no checking whether to disable DHE support... no checking whether to disable ECDHE support... no checking whether to disable GOST support... no checking whether to add cryptodev support... no checking whether to add AF_ALG support... no checking whether to add KTLS support... yes checking whether KTLS is supported by the OS... checking for linux/tls.h... yes checking whether to disable OCSP support... no checking whether to enable crypto-auditing trace support... no checking for sys/sdt.h... yes checking whether defines DTRACE_PROBE... yes checking size of void *... 8 checking size of long long... 8 checking size of long... 8 checking size of int... 4 checking for library containing setsockopt... none needed checking whether to build OpenSSL compatibility layer... yes checking for gtk-doc... yes checking for gtkdoc-check... gtkdoc-check.test checking for gtkdoc-check... /usr/bin/gtkdoc-check checking for gtkdoc-rebase... /usr/bin/gtkdoc-rebase checking for gtkdoc-mkpdf... /usr/bin/gtkdoc-mkpdf checking whether to build gtk-doc documentation... no checking for glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0... yes checking whether NLS is requested... yes checking for msgfmt... /usr/bin/msgfmt checking for gmsgfmt... /usr/bin/msgfmt checking for xgettext... /usr/bin/xgettext checking for msgmerge... /usr/bin/msgmerge checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for shared library run path origin... done checking 32-bit host C ABI... no checking for ELF binary format... yes checking for the common suffixes of directories in the library search path... lib,lib,lib checking for CFPreferencesCopyAppValue... no checking for CFLocaleCopyPreferredLanguages... no checking for GNU gettext in libc... yes checking whether to use NLS... yes checking where the gettext function comes from... libc checking whether byte ordering is bigendian... no checking for fork... yes checking for setitimer... yes checking for getrusage... yes checking for getpwuid_r... yes checking for nanosleep... yes checking for daemon... yes checking for getpid... yes checking for localtime... yes checking for mmap... yes checking for clock_gettime... yes checking for fmemopen... yes checking for __register_atfork... yes checking for secure_getenv... yes checking for getauxval... yes checking for elf_aux_info... no checking for libseccomp... yes checking how to link with libseccomp... /usr/lib/libseccomp.so checking for libcrypto... yes checking how to link with libcrypto... /usr/lib/libcrypto.so od: cannot skip past end of combined input checking for librt... yes checking how to link with librt... -lrt checking for pthread_mutex_lock... yes checking for library containing u8_normalize... -lunistring checking for size_t... yes checking for working alloca.h... yes checking for alloca... yes checking whether the preprocessor supports include_next... yes checking whether source code line length is unlimited... yes checking whether lstat correctly handles trailing slash... yes checking for canonicalize_file_name... yes checking for realpath... yes checking for lstat... yes checking for _set_invalid_parameter_handler... no checking for explicit_bzero... yes checking for fcntl... yes checking for symlink... yes checking for getdtablesize... yes checking for gettimeofday... yes checking for mbsinit... yes checking for mbrtowc... yes checking for mprotect... yes checking for memset_s... no checking for readlink... yes checking for secure_getenv... (cached) yes checking for getuid... yes checking for geteuid... yes checking for getgid... yes checking for getegid... yes checking for snprintf... yes checking for strndup... yes checking for localtime_r... yes checking for vasnprintf... no checking for getpass... yes checking for getexecname... no checking for setenv... yes checking for __xpg_strerror_r... yes checking for isblank... yes checking for pipe... yes checking for pselect... yes checking for pthread_sigmask... yes checking for sleep... yes checking for shutdown... yes checking for usleep... yes checking for mquery... no checking for pstat_getprocvm... no checking for gcc options needed to detect all undeclared functions... none needed checking whether // is distinct from /... no checking whether realpath works... yes checking for faccessat... yes checking for getcwd... yes checking for complete errno.h... yes checking whether ctype.h defines __header_inline... no checking for working fcntl.h... yes checking for pid_t... yes checking for mode_t... yes checking whether byte ordering is bigendian... (cached) no checking whether fopen recognizes a trailing slash... yes checking whether fflush works on input streams... yes checking whether fclose works on input streams... yes checking whether stat file-mode macros are broken... no checking for C/C++ restrict keyword... __restrict__ checking for nlink_t... yes checking whether stdin defaults to large file offsets... yes checking for off64_t... yes checking whether ftello is declared... yes checking whether ungetc works on arbitrary bytes... yes checking for ftello... yes checking whether ftello works... yes checking whether getdelim is declared... yes checking whether getdtablesize is declared... yes checking whether getline is declared... yes checking for struct timeval... yes checking for wide-enough struct timeval.tv_sec member... yes checking whether is self-contained... yes checking for shutdown... (cached) yes checking whether defines the SHUT_* macros... yes checking for struct sockaddr_storage... yes checking for sa_family_t... yes checking for struct sockaddr_storage.ss_family... yes checking for IPv4 sockets... yes checking for IPv6 sockets... yes checking whether limits.h has WORD_BIT, BOOL_WIDTH etc.... yes checking whether limits.h has SSIZE_MAX... yes checking for wint_t... yes checking whether wint_t is large enough... yes checking whether the compiler produces multi-arch binaries... no checking whether stdint.h conforms to C99... yes checking whether stdint.h works without ISO C predefines... yes checking whether stdint.h has UINTMAX_WIDTH etc.... yes checking whether imported symbols can be declared weak... yes checking for pthread.h... (cached) yes checking for pthread_kill in -lpthread... yes checking whether POSIX threads API is available... yes checking for multithread API to use... posix checking whether malloc is ptrdiff_t safe... yes checking whether malloc, realloc, calloc set errno on failure... yes checking whether malloc (0) returns nonnull... yes checking for mbstate_t... yes checking for nl_langinfo and CODESET... yes checking for a traditional japanese locale... none checking for an english Unicode locale... en_US.UTF-8 checking for a transitional chinese locale... none checking whether mbrtowc handles incomplete characters... yes checking whether mbrtowc works as well as mbtowc... guessing yes checking for mmap... (cached) yes checking for MAP_ANONYMOUS... yes checking whether memchr works... yes checking whether memmem is declared... yes checking whether defines MIN and MAX... no checking whether defines MIN and MAX... yes checking for O_CLOEXEC... yes checking for promoted mode_t type... mode_t checking for pthread_t... yes checking for pthread_spinlock_t... yes checking for pthread_spin_init... yes checking whether realloc should abort upon undefined behaviour... no checking for glibc-compatible sys/cdefs.h... yes checking for sched.h... yes checking for struct sched_param... yes checking whether snprintf returns a byte count as in C99... yes checking whether printf supports POSIX/XSI format strings with positions... yes checking whether snprintf is declared... yes checking for good max_align_t... yes checking whether NULL can be used in arbitrary expressions... yes checking for unreachable... yes checking whether nullptr_t needs ... yes checking for clean definition of __STDC_VERSION_STDDEF_H__... no checking whether fcloseall is declared... yes checking whether getw is declared... yes checking whether putw is declared... yes checking which flavor of printf attribute matches inttypes macros... system checking whether ecvt is declared... yes checking whether fcvt is declared... yes checking whether gcvt is declared... yes checking whether MB_CUR_MAX is correct... yes checking whether strdup is declared... yes checking whether strndup is declared... yes checking whether strnlen is declared... yes checking whether strtok_r is declared... yes checking for struct timespec in ... yes checking for TIME_UTC in ... yes checking whether execvpe is declared... yes checking for inttypes.h... yes checking for stdint.h... yes checking for intmax_t... yes checking whether snprintf truncates the result as in C99... yes checking where to find the exponent in a 'double'... word 1 bit 20 checking for wcslen... yes checking for snprintf... (cached) yes checking for strnlen... yes checking for wcrtomb... yes checking whether _snprintf is declared... no checking whether vsnprintf is declared... yes checking whether uses 'inline' correctly... yes checking whether wcsdup is declared... yes checking for C compiler option to allow warnings... -Wno-error checking for alignas and alignof... yes, keywords checking for alloca as a compiler built-in... yes checking for static_assert... yes, a keyword checking for bool, true, false... yes checking for __builtin_expect... yes checking for working bswap_16, bswap_32, bswap_64... yes checking whether // is distinct from /... (cached) no checking whether dup2 works... yes checking whether fcntl handles F_DUPFD correctly... yes checking whether fcntl understands F_DUPFD_CLOEXEC... needs runtime check checking whether float.h conforms to ISO C23... yes checking whether conversion from 'int' to 'long double' works... yes checking whether fopen supports the mode character 'x'... yes checking whether fopen supports the mode character 'e'... yes checking whether free is known to preserve errno... yes checking for ftello... (cached) yes checking whether ftello works... (cached) yes checking whether __func__ is available... yes checking for getdelim... yes checking for working getdelim function... yes checking whether getdtablesize works... yes checking for getline... yes checking for working getline function... yes checking for gettimeofday with POSIX signature... yes checking for library containing inet_ntop... none required checking whether inet_ntop is declared... yes checking for library containing inet_pton... none required checking whether inet_pton is declared... yes checking for objdump... objdump checking if gcc/ld supports -Wl,--output-def... no checking if LD -Wl,--version-script works... yes checking whether the compiler supports the __inline keyword... yes checking for pthread_rwlock_t... yes checking whether pthread_rwlock_rdlock prefers a writer to a reader... no checking whether lseek detects pipes... yes checking whether SEEK_DATA works but is incompatible with GNU... no checking for memmem... yes checking whether memmem works... yes checking for mempcpy... yes checking for memset_explicit... no checking for explicit_memset... no checking whether is self-contained... yes checking whether open recognizes a trailing slash... yes checking for pmccabe... false checking for PTHREAD_CREATE_DETACHED... yes checking for PTHREAD_MUTEX_RECURSIVE... yes checking for PTHREAD_MUTEX_ROBUST... yes checking for PTHREAD_PROCESS_SHARED... yes checking whether pthread_once works... yes checking for rawmemchr... yes checking whether readlink signature is correct... yes checking whether readlink handles trailing slash correctly... yes checking whether readlink truncates results correctly... yes checking whether realloc (..., 0) returns nonnull... no checking for stdint.h... (cached) yes checking for SIZE_MAX... yes checking for snprintf... (cached) yes checking whether snprintf respects a size of 1... yes checking for socklen_t... yes checking for ssize_t... yes checking whether stat handles trailing slashes on files... yes checking for struct stat.st_atim.tv_nsec... yes checking whether struct stat.st_atim is of type struct timespec... yes checking for struct stat.st_birthtimespec.tv_nsec... no checking for struct stat.st_birthtimensec... no checking for struct stat.st_birthtim.tv_nsec... no checking for stpcpy... yes checking for strcasecmp... yes checking for strncasecmp... yes checking whether strncasecmp is declared... yes checking for working strndup... yes checking for working strnlen... yes checking for strtok_r... yes checking whether strtok_r works... yes checking for strverscmp... yes checking whether strverscmp works... yes checking whether localtime_r is declared... yes checking whether localtime_r is compatible with its POSIX signature... yes checking for variable-length arrays... yes checking for ptrdiff_t... yes checking for vasprintf... yes checking for vsnprintf... yes checking whether snprintf respects a size of 1... (cached) yes checking for stdint.h... (cached) yes checking if environ is properly declared... yes checking for error... yes checking whether error_at_line is declared... yes checking for error_at_line... yes checking for working error function... yes checking whether strerror_r is declared... yes checking whether strerror_r returns char *... yes checking whether fseeko is declared... yes checking for fseeko... yes checking whether fflush works on input streams... (cached) yes checking for library containing gethostbyname... none required checking for gethostbyname... yes checking for library containing getservbyname... none required checking for getservbyname... yes checking whether fflush_unlocked is declared... yes checking whether flockfile is declared... yes checking whether fputs_unlocked is declared... yes checking whether funlockfile is declared... yes checking whether putc_unlocked is declared... yes checking whether timespec_get is declared... yes checking for timespec_get... yes checking whether INT32_MAX < INTMAX_MAX... yes checking whether INT64_MAX == LONG_MAX... yes checking whether UINT32_MAX < UINTMAX_MAX... yes checking whether UINT64_MAX == ULONG_MAX... yes checking whether time_t is signed... yes checking whether alarm is declared... yes checking for working mktime... yes checking for compound literals... yes checking for struct tm.tm_gmtoff... yes checking for struct tm.tm_zone... yes checking whether is self-contained... yes checking whether setenv is declared... yes checking whether _putenv is declared... no checking for search.h... yes checking for tsearch... yes checking for sigset_t... yes checking for uid_t... yes checking for gid_t... yes checking for volatile sig_atomic_t... yes checking for sighandler_t... yes checking whether strerror(0) succeeds... yes checking for strerror_r... yes checking for strerror_r with POSIX signature... no checking whether __xpg_strerror_r works... yes checking whether unsetenv is declared... yes checking for C++ compiler option to allow warnings... -Wno-error checking for a traditional french locale... none checking for a turkish Unicode locale... none checking if endian.h defines stdint types... no checking if endian.h defines functions and macros... yes checking whether getcwd (NULL, 0) allocates memory for result... yes checking for getcwd with POSIX signature... yes checking where to find the exponent in a 'float'... word 0 bit 23 checking whether long double and double are the same... no checking where to find the exponent in a 'long double'... word 3 bit 16 checking whether langinfo.h defines CODESET... yes checking whether langinfo.h defines T_FMT_AMPM... yes checking whether langinfo.h defines ALTMON_1... yes checking whether langinfo.h defines ERA... yes checking whether langinfo.h defines YESEXPR... yes checking whether locale.h defines locale_t... yes checking whether locale.h conforms to POSIX:2001... yes checking whether struct lconv is properly defined... yes checking for LC_MESSAGES... yes checking for uselocale... yes checking whether uselocale works... yes checking for fake locale system (OpenBSD)... no checking for Solaris 11.4 locale system... no checking for getlocalename_l... no checking for library needed for semaphore functions... none checking whether NAN macro works... yes checking whether HUGE_VAL works... yes checking whether initstate is declared... yes checking whether setstate is declared... yes checking whether setlocale (LC_ALL, NULL) is multithread-safe... yes checking whether setlocale (category, NULL) is multithread-safe... yes checking for a french Unicode locale... none checking whether declares ioctl... yes checking for alignas and alignof... (cached) yes, keywords checking for alloca as a compiler built-in... (cached) yes checking for static_assert... (cached) yes, a keyword checking for bool, true, false... (cached) yes checking for __builtin_expect... (cached) yes checking for working bswap_16, bswap_32, bswap_64... (cached) yes checking whether calloc (0, n) and calloc (n, 0) return nonnull... yes checking for library containing clock_gettime... none required checking for clock_getres... yes checking for clock_gettime... yes checking for clock_settime... yes checking whether // is distinct from /... (cached) no checking whether dup2 works... (cached) yes checking whether fcntl handles F_DUPFD correctly... (cached) yes checking whether fcntl understands F_DUPFD_CLOEXEC... (cached) needs runtime check checking for flexible array member... yes checking whether float.h conforms to ISO C23... (cached) yes checking whether conversion from 'int' to 'long double' works... (cached) yes checking whether fopen supports the mode character 'x'... (cached) yes checking whether fopen supports the mode character 'e'... (cached) yes checking for __fpending... yes checking whether __fpending is declared... yes checking whether free is known to preserve errno... (cached) yes checking for fseeko... (cached) yes checking whether fflush works on input streams... (cached) yes checking for ftello... (cached) yes checking whether ftello works... (cached) yes checking whether __func__ is available... (cached) yes checking for library containing getaddrinfo... none required checking for getaddrinfo... yes checking whether gai_strerror is declared... yes checking whether gai_strerrorA is declared... no checking for gai_strerror with POSIX signature... yes checking for struct sockaddr.sa_len... no checking whether getaddrinfo is declared... yes checking whether freeaddrinfo is declared... yes checking whether getnameinfo is declared... yes checking for struct addrinfo... yes checking for getdelim... (cached) yes checking for working getdelim function... (cached) yes checking whether getdtablesize works... (cached) yes checking for getline... (cached) yes checking for working getline function... (cached) yes checking for getprogname... no checking whether program_invocation_name is declared... yes checking whether program_invocation_name is declared... (cached) yes checking whether program_invocation_short_name is declared... yes checking whether __argv is declared... no checking for gettimeofday with POSIX signature... (cached) yes checking for library containing gethostbyname... (cached) none required checking for gethostbyname... (cached) yes checking for library containing inet_ntop... (cached) none required checking whether inet_ntop is declared... (cached) yes checking for library containing inet_pton... (cached) none required checking whether inet_pton is declared... (cached) yes checking whether the compiler supports the __inline keyword... (cached) yes checking for pthread_rwlock_t... (cached) yes checking whether pthread_rwlock_rdlock prefers a writer to a reader... (cached) no checking whether lseek detects pipes... (cached) yes checking whether SEEK_DATA works but is incompatible with GNU... (cached) no checking for memmem... (cached) yes checking whether memmem works... (cached) yes checking for mempcpy... (cached) yes checking for memset_explicit... (cached) no checking for explicit_memset... (cached) no checking for __mktime_internal... no checking whether is self-contained... (cached) yes checking whether open recognizes a trailing slash... (cached) yes checking for bison... bison checking for bison 2.4 or newer... 3.8.2, ok checking whether program_invocation_name is declared... (cached) yes checking whether program_invocation_short_name is declared... (cached) yes checking for PTHREAD_CREATE_DETACHED... (cached) yes checking for PTHREAD_MUTEX_RECURSIVE... (cached) yes checking for PTHREAD_MUTEX_ROBUST... (cached) yes checking for PTHREAD_PROCESS_SHARED... (cached) yes checking whether pthread_once works... (cached) yes checking for rawmemchr... (cached) yes checking whether readlink signature is correct... (cached) yes checking whether readlink handles trailing slash correctly... (cached) yes checking whether readlink truncates results correctly... (cached) yes checking whether realloc (..., 0) returns nonnull... (cached) no checking for reallocarray... yes checking whether select supports a 0 argument... yes checking whether select detects invalid fds... yes checking for library containing getservbyname... (cached) none required checking for getservbyname... (cached) yes checking whether setenv validates arguments... yes checking for stdint.h... (cached) yes checking for SIZE_MAX... (cached) yes checking for snprintf... (cached) yes checking whether snprintf respects a size of 1... (cached) yes checking for socklen_t... (cached) yes checking for ssize_t... (cached) yes checking whether stat handles trailing slashes on files... (cached) yes checking for struct stat.st_atim.tv_nsec... (cached) yes checking whether struct stat.st_atim is of type struct timespec... (cached) yes checking for struct stat.st_birthtimespec.tv_nsec... (cached) no checking for struct stat.st_birthtimensec... (cached) no checking for struct stat.st_birthtim.tv_nsec... (cached) no checking for stpcpy... (cached) yes checking for strcasecmp... (cached) yes checking for strncasecmp... (cached) yes checking whether strncasecmp is declared... (cached) yes checking for working strerror function... yes checking for working strndup... (cached) yes checking for working strnlen... (cached) yes checking for strtok_r... (cached) yes checking whether strtok_r works... (cached) yes checking for strverscmp... (cached) yes checking whether strverscmp works... (cached) yes checking whether localtime_r is declared... (cached) yes checking whether localtime_r is compatible with its POSIX signature... (cached) yes checking whether localtime works even near extrema... yes checking for timezone_t... no checking for tzalloc... no checking for timegm... yes checking for unsetenv... yes checking for unsetenv() return type... int checking whether unsetenv obeys POSIX... yes checking for variable-length arrays... (cached) yes checking for ptrdiff_t... (cached) yes checking for vasprintf... (cached) yes checking for vsnprintf... (cached) yes checking whether snprintf respects a size of 1... (cached) yes checking for stdint.h... (cached) yes checking whether fdopen sets errno... yes checking for ftruncate... yes checking for getpagesize... yes checking whether getpagesize is declared... yes checking whether htons is declared... yes checking whether htonl is declared... yes checking whether ntohs is declared... yes checking whether ntohl is declared... yes checking whether byte ordering is bigendian... (cached) no checking whether byte ordering is bigendian... (cached) no checking for ioctl... yes checking for ioctl with POSIX signature... no checking whether isnan(double) can be used without linking with libm... yes checking whether isnan(float) can be used without linking with libm... yes checking whether isnan(float) works... yes checking whether isnan(long double) can be used without linking with libm... yes checking whether isnanl works... yes checking for newlocale... yes checking for newlocale... (cached) yes checking for newlocale... (cached) yes checking for duplocale... yes checking for freelocale... yes checking for library containing nanosleep... none required checking for working nanosleep... no (mishandles large arguments) checking whether perror matches strerror... yes checking whether signature of pselect conforms to POSIX... yes checking whether pselect detects invalid fds... yes checking for pthread_mutexattr_getrobust... yes checking for pthread_rwlock_init... yes checking whether pthread_rwlock_timedrdlock is declared... yes checking for reasonable pthread_rwlock wait queue handling... no checking whether pthread_create exists as a global function... yes checking whether pthread_mutex_timedlock is declared... yes checking for pthread_mutex_timedlock... yes checking whether pthread_sigmask is a macro... no checking whether pthread_sigmask works without -lpthread... yes checking whether pthread_sigmask returns error numbers... yes checking whether pthread_sigmask unblocks signals correctly... guessing yes checking for putenv compatible with GNU and SVID... yes checking for raise... yes checking for sigprocmask... yes checking for random... yes checking for initstate... yes checking for setstate... yes checking for random.h... no checking for struct random_data... yes checking for random_r... yes checking whether sched_yield is declared... yes checking whether setlocale supports the C locale... yes checking whether setlocale (LC_ALL, NULL) is multithread-safe... (cached) yes checking whether setlocale (category, NULL) is multithread-safe... (cached) yes checking for signbit macro... yes checking for signbit compiler built-ins... yes checking for sigprocmask... (cached) yes checking whether sleep is declared... yes checking for working sleep... yes checking for catgets... yes checking whether symlink handles trailing slash correctly... yes checking for IPv4 sockets... (cached) yes checking for IPv6 sockets... (cached) yes checking for UNIX domain sockets... yes checking for pthread_atfork... yes checking for sys/single_threaded.h... yes checking whether time() works... guessing no checking for struct tm.tm_gmtoff... (cached) yes checking for struct tm.tm_zone... (cached) yes checking for useconds_t... yes checking whether usleep allows large arguments... yes checking for bool, true, false... (cached) yes checking whether the compiler generally respects inline... yes checking for ssize_t... (cached) yes checking for libev... no checking whether C compiler handles -Werror -Wunknown-warning-option... no checking whether C compiler handles -Wtype-limits... yes checking whether -Wno-missing-field-initializers is needed... no checking whether -Wuninitialized is supported... yes checking whether C compiler handles -fanalyzer... yes checking whether C compiler handles -fstrict-flex-arrays... yes checking whether C compiler handles -Wall... yes checking whether C compiler handles -Wbad-function-cast... yes checking whether C compiler handles -Wcast-align=strict... yes checking whether C compiler handles -Wdate-time... yes checking whether C compiler handles -Wdisabled-optimization... yes checking whether C compiler handles -Wdouble-promotion... yes checking whether C compiler handles -Wduplicated-branches... yes checking whether C compiler handles -Wduplicated-cond... yes checking whether C compiler handles -Wextra... yes checking whether C compiler handles -Wflex-array-member-not-at-end... yes checking whether C compiler handles -Winit-self... yes checking whether C compiler handles -Winvalid-pch... yes checking whether C compiler handles -Wlogical-op... yes checking whether C compiler handles -Wmissing-declarations... yes checking whether C compiler handles -Wmissing-include-dirs... yes checking whether C compiler handles -Wmissing-prototypes... yes checking whether C compiler handles -Wnested-externs... yes checking whether C compiler handles -Wnull-dereference... yes checking whether C compiler handles -Wold-style-definition... yes checking whether C compiler handles -Wopenmp-simd... yes checking whether C compiler handles -Wpacked... yes checking whether C compiler handles -Wpointer-arith... yes checking whether C compiler handles -Wshadow... yes checking whether C compiler handles -Wstrict-flex-arrays... yes checking whether C compiler handles -Wstrict-prototypes... yes checking whether C compiler handles -Wsuggest-attribute=cold... yes checking whether C compiler handles -Wsuggest-attribute=format... yes checking whether C compiler handles -Wsuggest-attribute=malloc... yes checking whether C compiler handles -Wsuggest-final-methods... yes checking whether C compiler handles -Wsuggest-final-types... yes checking whether C compiler handles -Wsync-nand... yes checking whether C compiler handles -Wtrampolines... yes checking whether C compiler handles -Wuninitialized... yes checking whether C compiler handles -Wunknown-pragmas... yes checking whether C compiler handles -Wunused-macros... yes checking whether C compiler handles -Wvariadic-macros... yes checking whether C compiler handles -Wvector-operation-performance... yes checking whether C compiler handles -Wwrite-strings... yes checking whether C compiler handles -Warray-bounds=2... yes checking whether C compiler handles -Wattribute-alias=2... yes checking whether C compiler handles -Wbidi-chars=any,ucn... yes checking whether C compiler handles -Wformat-overflow=2... yes checking whether C compiler handles -Wformat=2... yes checking whether C compiler handles -Wformat-truncation=2... yes checking whether C compiler handles -Wimplicit-fallthrough=5... yes checking whether C compiler handles -Wshift-overflow=2... yes checking whether C compiler handles -Wuse-after-free=3... yes checking whether C compiler handles -Wunused-const-variable=2... yes checking whether C compiler handles -Wvla-larger-than=4031... yes checking whether C compiler handles -Wthread-safety... no checking whether C compiler handles -Wno-analyzer-malloc-leak... yes checking whether C compiler handles -Wno-missing-field-initializers... yes checking whether C compiler handles -Wno-unused-parameter... yes checking whether C compiler handles -Wno-format-truncation... yes checking whether C compiler handles -Wimplicit-fallthrough=2... yes checking whether C compiler handles -Wabi=11... yes checking whether C compiler handles -fdiagnostics-show-option... yes checking whether C compiler handles -fno-builtin-strcmp... yes checking whether ln -s works... yes checking how to print strings... printf checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for fgrep... /usr/bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking the maximum length of command line arguments... 1572864 checking how to convert riscv64-unknown-linux-gnu file names to riscv64-unknown-linux-gnu format... func_convert_file_noop checking how to convert riscv64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for file... file checking for objdump... (cached) objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for archiver @FILE support... @ checking for strip... strip checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /usr/bin/dd checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking which variant of shared library versioning to provide... (default) aix checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking how to run the C++ preprocessor... g++ -E checking for ld used by g++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC -DPIC checking if g++ PIC flag -fPIC -DPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking if g++ supports -c -o file.o... (cached) yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... (cached) GNU/Linux ld.so checking how to hardcode library paths into programs... immediate od: cannot skip past end of combined input checking for libdl... yes checking how to link with libdl... -ldl checking for cmocka >= 1.0.1... no checking for libidn2 >= 2.0.0... yes checking for nettle_get_secp_192r1 in -lhogweed... yes checking for nettle_rsa_sec_decrypt... yes checking for nettle_gost28147_set_key... no checking for nettle_streebog512_update... yes checking for nettle_magma_set_key... no checking for nettle_kuznyechik_set_key... no checking for nettle_cmac_magma_update... no checking for nettle_cmac_kuznyechik_update... no checking for nettle_siv_gcm_encrypt_message... yes checking for nettle_rsa_oaep_sha256_encrypt... yes checking for nettle_cbc_aes128_encrypt... yes checking for nettle_sha3_128_shake_output... yes checking gmp soname... libgmp.so.10 checking nettle soname... libnettle.so.8 checking hogweed soname... libhogweed.so.6 checking whether to build libdane... yes checking for unbound library... no configure: WARNING: *** *** libunbound was not found. Libdane will not be built. *** checking for p11-kit-1 >= 0.23.1... yes checking m soname... checking whether dlopen works with SONAME... yes checking for tss2-esys... yes checking for tss2-mu... yes checking for tss2-tctildr... yes checking tss2-esys soname... libtss2-esys.so.0 checking tss2-mu soname... libtss2-mu.so.0 checking tss2-tctildr soname... libtss2-tctildr.so.0 checking for Esys_SetCryptoCallbacks... yes checking for tss library... no configure: WARNING: *** *** trousers was not found. TPM support will be disabled. *** checking size of unsigned long int... 8 checking size of unsigned int... 4 checking size of time_t... 8 checking for zlib... yes checking z soname... libz.so.1 checking for libbrotlienc >= 1.0.0... yes checking for libbrotlidec >= 1.0.0... yes checking brotlienc soname... libbrotlienc.so.1 checking brotlidec soname... libbrotlidec.so.1 checking for libzstd... yes checking zstd soname... libzstd.so.1 checking for leancrypto >= 1.2.0... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating ldd.sh config.status: creating Makefile config.status: creating doc/Makefile config.status: creating doc/credentials/Makefile config.status: creating doc/credentials/srp/Makefile config.status: creating doc/credentials/x509/Makefile config.status: creating doc/doxygen/Doxyfile config.status: creating doc/examples/Makefile config.status: creating doc/latex/Makefile config.status: creating doc/manpages/Makefile config.status: creating doc/reference/Makefile config.status: creating doc/reference/version.xml config.status: creating doc/scripts/Makefile config.status: creating extra/Makefile config.status: creating extra/includes/Makefile config.status: creating libdane/Makefile config.status: creating libdane/includes/Makefile config.status: creating libdane/gnutls-dane.pc config.status: creating gl/Makefile config.status: creating lib/Makefile config.status: creating lib/accelerated/Makefile config.status: creating lib/accelerated/x86/Makefile config.status: creating lib/accelerated/aarch64/Makefile config.status: creating lib/algorithms/Makefile config.status: creating lib/auth/Makefile config.status: creating lib/ext/Makefile config.status: creating lib/extras/Makefile config.status: creating lib/gnutls.pc config.status: creating lib/includes/Makefile config.status: creating lib/includes/gnutls/gnutls.h config.status: creating lib/minitasn1/Makefile config.status: creating lib/nettle/Makefile config.status: creating lib/pkcs11/Makefile config.status: creating lib/x509/Makefile config.status: creating lib/unistring/Makefile config.status: creating po/Makefile.in config.status: creating src/Makefile config.status: creating src/gl/Makefile config.status: creating src/gl/tests/Makefile config.status: creating tests/Makefile config.status: creating tests/windows/Makefile config.status: creating tests/cert-tests/Makefile config.status: creating tests/slow/Makefile config.status: creating tests/suite/Makefile config.status: creating fuzz/Makefile config.status: creating config.h config.status: executing depfiles commands config.status: executing po-directories commands config.status: creating po/Makefile config.status: executing libtool commands configure: summary of build options: version: 3.8.11 shared 71:0:41 Host/Target system: riscv64-unknown-linux-gnu Build system: riscv64-unknown-linux-gnu Install prefix: /usr Compiler: gcc Valgrind: no CFlags: -march=rv64gc -mabi=lp64d -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fno-omit-frame-pointer -g -ffile-prefix-map=/build/gnutls/src=/usr/src/debug/gnutls -flto=auto Library types: Shared=yes, Static=no Local libtasn1: no Local unistring: no Use nettle-mini: no Documentation: yes (manpages: yes) configure: External hardware support: /dev/crypto: no AF_ALG support: no Hardware accel: none Padlock accel: no Random gen. variant: getrandom PKCS#11 support: yes TPM support: no TPM2 support: dlopen KTLS support: yes configure: TPM2 library: tss2-esys tss2-mu tss2-tctildr configure: Optional features: (note that included applications might not compile properly if features are disabled) SSL3.0 support: no SSL2.0 client hello: yes Allow SHA1 sign: no DTLS-SRTP support: yes ALPN support: yes OCSP support: yes SRP support: no PSK support: yes DHE support: yes ECDHE support: yes GOST support: yes Anon auth support: yes Heartbeat support: no IDNA support: IDNA 2008 (libidn2) Non-SuiteB curves: yes FIPS140 mode: no Strict DER time: yes Audit trace: no configure: Optional libraries: C++ library: yes DANE library: no OpenSSL compat: yes configure: System files: Trust store pkcs11: pkcs11: Trust store dir: Trust store file: Blocklist file: CRL file: Configuration file: ${sysconfdir}/gnutls/config DNSSEC root key file: /etc/unbound/root.key configure: WARNING: *** *** The DNSSEC root key file in /etc/unbound/root.key was not found. *** This file is needed for the verification of DNSSEC responses. *** Use the command: unbound-anchor -a "/etc/unbound/root.key" *** to generate or update it. *** make all-recursive make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.11' Making all in gl make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/gl' GEN alloca.h GEN arpa/inet.h GEN fcntl.h GEN malloc/scratch_buffer.gl.h GEN inttypes.h GEN limits.h GEN netdb.h GEN pthread.h GEN sched.h GEN stddef.h GEN stdio.h GEN stdlib.h GEN string.h GEN strings.h GEN sys/socket.h GEN sys/stat.h GEN sys/time.h GEN sys/types.h GEN sys/uio.h GEN time.h GEN unistd.h GEN wchar.h make all-recursive make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/gl' make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/gl' CC libgnu_la-arpa_inet.lo CC libgnu_la-basename-lgpl.lo CC libgnu_la-c-ctype.lo CC libgnu_la-c-strcasecmp.lo CC libgnu_la-c-strncasecmp.lo CC libgnu_la-cloexec.lo CC libgnu_la-dirname-lgpl.lo CC libgnu_la-stripslash.lo CC libgnu_la-fcntl.lo CC libgnu_la-fd-hook.lo CC libgnu_la-hash-pjw-bare.lo CC libgnu_la-gl_linkedhash_list.lo CC libgnu_la-gl_list.lo CC libgnu_la-malloca.lo CC libgnu_la-mbszero.lo CC libgnu_la-memset_explicit.lo CC glthread/libgnu_la-once.lo CC libgnu_la-read-file.lo CC libgnu_la-realloc.lo CC libgnu_la-stat-time.lo CC libgnu_la-stdlib.lo CC libgnu_la-sys_socket.lo CC glthread/libgnu_la-threadlib.lo CC glthread/libgnu_la-tls.lo CC libgnu_la-unistd.lo CC libgnu_la-vsnzprintf.lo CC libgnu_la-xsize.lo CC asnprintf.lo CC printf-args.lo CC printf-parse.lo CC vasnprintf.lo CC malloc/libgnu_la-scratch_buffer_grow.lo CC malloc/libgnu_la-scratch_buffer_grow_preserve.lo CC malloc/libgnu_la-scratch_buffer_set_array_size.lo CC glthread/libgnu_la-lock.lo CCLD libgnu.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/gl' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/gl' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/gl' Making all in lib make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib' make all-recursive make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib' Making all in includes make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/includes' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/includes' Making all in x509 make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/x509' make all-am make[5]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/x509' CC common.lo CC key_encode.lo CC key_decode.lo CC time.lo CC crl.lo CC crl_write.lo CC crq.lo CC dn.lo CC attributes.lo CC prov-seed.lo CC extensions.lo CC mpi.lo CC output.lo CC pkcs12.lo CC pkcs12_bag.lo CC pkcs12_encr.lo CC pkcs7.lo CC pkcs7-attrs.lo CC pkcs7-crypt.lo CC privkey.lo CC privkey_pkcs8.lo CC privkey_pkcs8_pbes1.lo CC privkey_openssl.lo CC hostname-verify.lo CC sign.lo CC verify.lo CC x509.lo CC x509_dn.lo CC x509_write.lo CC name_constraints.lo CC verify-high.lo CC verify-high2.lo CC x509_ext.lo CC email-verify.lo CC pkcs7-output.lo CC virt-san.lo CC spki.lo CC tls_features.lo CC krb5.lo CC ip.lo CC ocsp.lo CC ocsp_output.lo CCLD libgnutls_x509.la make[5]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/x509' make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/x509' Making all in auth make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/auth' CC anon.lo CC cert.lo CC dh_common.lo CC dhe.lo CC rsa_psk.lo CC dhe_psk.lo CC psk.lo CC psk_passwd.lo CC rsa.lo CC srp_kx.lo CC srp_passwd.lo CC srp_rsa.lo CC srp_sb64.lo CC anon_ecdh.lo CC ecdhe.lo CC vko_gost.lo CCLD libgnutls_auth.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/auth' Making all in ext make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/ext' CC max_record.lo CC server_name.lo CC signature.lo CC safe_renegotiation.lo CC session_ticket.lo CC srp.lo CC heartbeat.lo CC status_request.lo CC dumbfw.lo CC ext_master_secret.lo CC etm.lo CC supported_versions.lo CC post_handshake.lo CC key_share.lo CC cookie.lo CC psk_ke_modes.lo CC pre_shared_key.lo CC supported_groups.lo CC ec_point_formats.lo CC early_data.lo CC record_size_limit.lo CC client_cert_type.lo CC server_cert_type.lo CC compress_certificate.lo CC alpn.lo CC srtp.lo CCLD libgnutls_ext.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/ext' Making all in algorithms make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/algorithms' CC cert_types.lo CC ciphers.lo CC ciphersuites.lo CC ecc.lo CC kx.lo CC mac.lo CC protocols.lo CC publickey.lo CC secparams.lo CC sign.lo CC groups.lo CCLD libgnutls_alg.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/algorithms' Making all in extras make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/extras' CC randomart.lo CC hex.lo CCLD libgnutls_extras.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/extras' Making all in accelerated make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/accelerated' make[5]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/accelerated' CC accelerated.lo CC cryptodev.lo CC cryptodev-gcm.lo CC afalg.lo CCLD libaccelerated.la make[5]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/accelerated' make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/accelerated' Making all in pkcs11 make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/pkcs11' CC p11_provider.lo CC p11_cipher.lo CC p11_pk.lo CC p11_mac.lo CCLD libgnutls_pkcs11.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/pkcs11' Making all in nettle make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/nettle' CC pk.lo CC mpi.lo CC mac.lo CC cipher.lo CC init.lo CC prf.lo CC rnd.lo CC sysrng-linux.lo CC rnd-fuzzer.lo CC gost_keywrap.lo CC gost/magma.lo CC gost/kuznyechik.lo CC gost/acpkm.lo CC gost/cmac-magma.lo CC gost/cmac-kuznyechik.lo CC int/rsa-keygen-fips186.lo CC int/provable-prime.lo CC int/dsa-keygen-fips186.lo CC int/dsa-validate.lo CC int/tls1-prf.lo CC int/dsa-compute-k.lo CC int/ecdsa-compute-k.lo CC int/mpn-base256.lo CC int/rsa-pad.lo CC gost/write-le32.lo CC gost/gost28147.lo CC gost/gost-wrap.lo CC gost/streebog.lo CC gost/streebog-meta.lo CC gost/hmac-streebog.lo CC gost/bignum-le.lo CC gost/gostdsa-mask.lo CCLD libcrypto.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/nettle' make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib' CC range.lo CC record.lo CC debug.lo CC compress.lo CC cipher.lo CC handshake-tls13.lo CC mbuffers.lo CC buffers.lo CC handshake.lo CC errors.lo CC dh.lo CC kx.lo CC cipher-cbc.lo CC priority.lo CC hash_int.lo CC cipher_int.lo CC session.lo CC db.lo CC x509_b64.lo CC hello_ext.lo CC auth.lo CC sslv2_compat.lo CC datum.lo CC session_pack.lo CC mpi.lo CC pk.lo CC cert-cred.lo CC global.lo CC constate.lo CC anon_cred.lo CC pkix_asn1_tab.lo CC gnutls_asn1_tab.lo CC mem.lo CC fingerprint.lo CC tls-sig.lo CC ecc.lo CC alert.lo CC privkey_raw.lo CC str-iconv.lo CC system.lo CC profiles.lo CC str.lo CC str-unicode.lo CC str-idna.lo CC state.lo CC cert-cred-x509.lo CC file.lo CC supplemental.lo CC random.lo CC crypto-api.lo CC privkey.lo CC pcert.lo CC pubkey.lo CC locks.lo CC dtls.lo CC system_override.lo CC crypto-backend.lo CC verify-tofu.lo CC pin.lo CC tpm.lo CC fips.lo CC safe-memfuncs.lo CC atfork.lo CC randomart.lo CC urls.lo CC prf.lo CC auto-verify.lo CC dh-session.lo CC cert-session.lo CC handshake-checks.lo CC dtls-sw.lo CC dh-primes.lo CC openpgp_compat.lo CC crypto-selftests.lo CC crypto-selftests-pk.lo CC secrets.lo CC extv.lo CC hello_ext_lib.lo CC ocsp-api.lo CC stek.lo CC cert-cred-rawpk.lo CC iov.lo CC system/ktls.lo CC pathbuf.lo CC audit.lo CC vko.lo CC dlwrap/tss2_esys.lo CC dlwrap/tss2_mu.lo CC dlwrap/tss2_tctildr.lo CC system/keys-dummy.lo CC tls13-sig.lo CC tls13/finished.lo CC tls13/key_update.lo CC tls13/hello_retry.lo CC tls13/session_ticket.lo CC tls13/certificate.lo CC tls13/early_data.lo CC tls13/post_handshake.lo CC tls13/psk_ext_parser.lo CC tls13/anti_replay.lo CC pkcs11.lo CC pkcs11x.lo CC pkcs11_privkey.lo CC pkcs11_write.lo CC pkcs11_secret.lo CC pkcs11_int.lo CC srp.lo CC psk.lo CXX libgnutlsxx_la-gnutlsxx.lo CC system/certs.lo CC system/threads.lo CC system/fastopen.lo CC system/sockets.lo CC inih/ini.lo CC dlwrap/zlib.lo CC dlwrap/zstd.lo CC dlwrap/brotlienc.lo CC dlwrap/brotlidec.lo CC tpm2/tpm2.lo CC tpm2/tpm2_esys.lo CC tpm2/callbacks/esys_crypto_callbacks.lo CC tpm2/callbacks/aes/aes_callbacks.lo CC tpm2/callbacks/ecdh/ecdh_callbacks.lo CC tpm2/callbacks/random/random_callbacks.lo CC tpm2/callbacks/hmac/hmac_callbacks.lo CC tpm2/callbacks/hash/hash_callbacks.lo CC tpm2/callbacks/rsa/rsa_callbacks.lo CC tls13/encrypted_extensions.lo CC tls13/certificate_request.lo CC tls13/certificate_verify.lo CCLD libgnutls.la x509/pkcs12_bag.c: In function 'gnutls_pkcs12_bag_enc_info': x509/pkcs12_bag.c:800:28: warning: 'p' may be used uninitialized [-Wmaybe-uninitialized] 800 | *schema = p->flag; | ^ x509/pkcs12_bag.c:780:45: note: 'p' was declared here 780 | const struct pkcs_cipher_schema_st *p; | ^ In function '_gnutls_asn1_encode_ecc', inlined from '_gnutls_asn1_encode_privkey' at x509/key_encode.c:1264:10: x509/key_encode.c:978:15: warning: potential null pointer dereference [-Wnull-dereference] 978 | if (ce->oid == NULL) | ^ x509/key_encode.c:978:15: warning: potential null pointer dereference [-Wnull-dereference] In function '_gnutls_handshake_sign_data', inlined from '_gnutls_gen_dhe_signature' at auth/cert.c:1770:14: tls-sig.c:205:9: warning: potential null pointer dereference [-Wnull-dereference] 205 | _gnutls_audit_new_context_with_data( | ^ tls-sig.c:205:9: warning: potential null pointer dereference [-Wnull-dereference] tls-sig.c:205:9: warning: potential null pointer dereference [-Wnull-dereference] tls-sig.c:205:9: warning: potential null pointer dereference [-Wnull-dereference] In function 'server_use_key_share_single', inlined from 'server_use_key_share' at ext/key_share.c:640:9, inlined from 'key_share_recv_params' at ext/key_share.c:904:11: ext/key_share.c:432:26: warning: potential null pointer dereference [-Wnull-dereference] 432 | if (curve->size * 2 + 1 > buffer->length) | ^ ext/key_share.c:432:26: warning: potential null pointer dereference [-Wnull-dereference] ext/key_share.c:478:26: warning: potential null pointer dereference [-Wnull-dereference] 478 | if (curve->size > buffer->length) | ^ ext/key_share.c:478:26: warning: potential null pointer dereference [-Wnull-dereference] CXXLD libgnutlsxx.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib' Making all in extra make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/extra' Making all in includes make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/extra/includes' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/extra/includes' make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/extra' CC gnutls_openssl.lo CC openssl_compat.lo CCLD libgnutls-openssl.la /usr/bin/nm: libgnu_la-arpa_inet.o: no symbols /usr/bin/nm: libgnu_la-fd-hook.o: no symbols /usr/bin/nm: libgnu_la-stdlib.o: no symbols /usr/bin/nm: libgnu_la-sys_socket.o: no symbols /usr/bin/nm: libgnu_la-threadlib.o: no symbols /usr/bin/nm: libgnu_la-tls.o: no symbols /usr/bin/nm: libgnu_la-unistd.o: no symbols make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/extra' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/extra' Making all in po make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/po' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/po' Making all in src/gl make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl' GEN alloca.h GEN arpa/inet.h GEN error.h GEN fcntl.h GEN malloc/scratch_buffer.gl.h GEN inttypes.h GEN limits.h GEN netdb.h GEN pthread.h GEN sched.h GEN signal.h GEN stddef.h GEN stdio.h GEN stdlib.h GEN string.h GEN strings.h GEN sys/select.h GEN sys/socket.h GEN sys/stat.h GEN sys/time.h GEN sys/types.h GEN sys/uio.h GEN time.h GEN unistd.h GEN wchar.h make all-recursive make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl' Making all in . make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl' CC libgnu_gpl_la-arpa_inet.lo CC libgnu_gpl_la-basename-lgpl.lo CC libgnu_gpl_la-c-ctype.lo CC libgnu_gpl_la-c-strcasecmp.lo CC libgnu_gpl_la-c-strncasecmp.lo CC libgnu_gpl_la-cloexec.lo CC libgnu_gpl_la-close-stream.lo CC libgnu_gpl_la-exitfail.lo CC libgnu_gpl_la-fcntl.lo CC libgnu_gpl_la-fd-hook.lo CC libgnu_gpl_la-getprogname.lo CC libgnu_gpl_la-gettime.lo CC libgnu_gpl_la-hash-pjw-bare.lo CC libgnu_gpl_la-ialloc.lo CC libgnu_gpl_la-gl_linked_list.lo CC libgnu_gpl_la-gl_linkedhash_list.lo CC libgnu_gpl_la-gl_list.lo CC libgnu_gpl_la-malloca.lo CC libgnu_gpl_la-mbszero.lo CC libgnu_gpl_la-memset_explicit.lo CC glthread/libgnu_gpl_la-once.lo CC libgnu_gpl_la-parse-datetime.lo CC libgnu_gpl_la-progname.lo CC libgnu_gpl_la-read-file.lo CC libgnu_gpl_la-realloc.lo CC libgnu_gpl_la-reallocarray.lo CC libgnu_gpl_la-sockets.lo CC libgnu_gpl_la-stat-time.lo CC libgnu_gpl_la-stdlib.lo CC libgnu_gpl_la-sys_socket.lo CC glthread/libgnu_gpl_la-threadlib.lo CC libgnu_gpl_la-time_rz.lo CC libgnu_gpl_la-timespec.lo CC glthread/libgnu_gpl_la-tls.lo CC libgnu_gpl_la-unistd.lo CC libgnu_gpl_la-vsnzprintf.lo CC libgnu_gpl_la-xmalloc.lo CC libgnu_gpl_la-xalloc-die.lo CC libgnu_gpl_la-gl_xlist.lo CC libgnu_gpl_la-xsize.lo CC asnprintf.lo CC mktime.lo CC printf-args.lo CC printf-parse.lo CC vasnprintf.lo CC malloc/libgnu_gpl_la-scratch_buffer_grow.lo CC malloc/libgnu_gpl_la-scratch_buffer_grow_preserve.lo CC malloc/libgnu_gpl_la-scratch_buffer_set_array_size.lo CC glthread/libgnu_gpl_la-lock.lo CCLD libgnu_gpl.la make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl' Making all in tests make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' GEN ctype.h GEN endian.h GEN langinfo.h GEN locale.h GEN math.h GEN sys/ioctl.h ## ---------------------------------------------------- ## ## ------------------- Gnulib tests ------------------- ## ## You can ignore compiler warnings in this directory. ## ## ---------------------------------------------------- ## make all-recursive make[5]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' Making all in . make[6]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' make[6]: Nothing to be done for 'all-am'. make[6]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' make[5]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl' Making all in src make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src' make all-am make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src' CC psk.o CC psktool-options.lo CC cli-debug.o CC tests.o CC socket.o CC common.o CC gnutls-cli-debug-options.lo CC certtool.o CC certtool-common.o CC certtool-extras.o CC certtool-options.lo CC certtool-cfg.lo CC cfg.lo CC serv.o CC udp-serv.o serv.c: In function 'terminate': serv.c:1140:9: warning: ignoring return value of 'write' declared with attribute 'warn_unused_result' [-Wunused-result] 1140 | write(STDERR_FILENO, buf, p - buf); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC gnutls-serv-options.lo CC cli.o CC benchmark-cipher.o CC benchmark.o CC benchmark-tls.o CC ocsptool-common.o CC gnutls-cli-options.lo CC ocsptool.o CC ocsptool-options.lo CC p11tool-p11tool.o CC p11tool-pkcs11.o CC p11tool-certtool-common.o CC p11tool-certtool-extras.o CC p11tool-common.o CC p11tool-options.lo CC systemkey.o CC systemkey-tool-options.lo CC dumpcfg-cfg.o CC danetool-options.lo CCLD libcmd-psk.la CCLD libcmd-cli-debug.la CCLD libcerttool-cfg.la CCLD libcmd-serv.la CCLD libcmd-cli.la CCLD libcmd-ocsp.la CCLD dumpcfg copying selected object files to avoid basename conflicts... CCLD psktool CCLD gnutls-cli-debug CCLD gnutls-serv CCLD gnutls-cli CCLD ocsptool In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(20) ...to here | | (21) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(24) ...to here | | (25) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_241 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_210 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_241 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:105: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:105: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_176->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_176->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(20) ...to here | | (21) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(24) ...to here | | (25) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_241 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_210 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_241 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:105: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:105: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_176->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_176->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | CCLD libcmd-p11tool.la copying selected object files to avoid basename conflicts... CCLD libcmd-systemkey.la copying selected object files to avoid basename conflicts... CCLD libcmd-danetool.la copying selected object files to avoid basename conflicts... In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(20) ...to here | | (21) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(24) ...to here | | (25) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_241 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_210 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_241 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:105: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:105: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | CCLD libcmd-certtool.la gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_176->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_176->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | copying selected object files to avoid basename conflicts... In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(20) ...to here | | (21) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(24) ...to here | | (25) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_241 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_210 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_241 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:105: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:105: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_176->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_176->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | CCLD p11tool CCLD systemkey cli.c: In function 'try_resume.isra': cli.c:1049:28: warning: 'size' may be used uninitialized [-Wmaybe-uninitialized] 1049 | edata.size = size; | ^ cli.c:1040:24: note: 'size' was declared here 1040 | size_t size; | ^ CCLD certtool In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(20) ...to here | | (21) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(24) ...to here | | (25) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_241 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_210 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_241 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:105: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:105: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_176->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_176->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(20) ...to here | | (21) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(24) ...to here | | (25) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_241 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_210 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_241 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:105: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:105: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_176->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_176->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | In function 'digits_to_date_time': lto1: warning: use of uninitialized value 'text_int.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 89:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2415 || case 89: /* number: tUNUMBER */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:997:9: | 997 | { digits_to_date_time (pc, $1); } | | ^ | | | | | (53) calling 'digits_to_date_time' from 'yyparse' | +--> 'digits_to_date_time': events 54-55 | | 273 | digits_to_date_time (parser_control *pc, textint text_int) | | ^ ~ | | | | | | (54) entry to 'digits_to_date_time' (55) region created on stack here | 'digits_to_date_time': event 56 | |lto1: | (56): use of uninitialized value 'text_int.value' here | In function 'apply_relative_time': lto1: warning: use of uninitialized value 'rel.month' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-25 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (17) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(18) ...to here | | (19) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(20) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (21) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(22) ...to here | | (23) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(24) ...to here | | (25) calling 'yylex' from 'yyparse' | +--> 'yylex': events 26-27 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (26) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (27) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 28-29 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (28) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (29) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 30 | |lto1: | (30): ...to here | <------+ | 'yylex': event 31 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (31) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 32-52 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (43) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(44) ...to here | | (45) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(46) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (47) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(48) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (33) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(34) ...to here | | (35) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(36) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (49) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(50) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (51) following 'case 34:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2033 || case 34: /* zone: 'T' relunit_snumber */ | || ~ | || | | |+->(52) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (37) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(38) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (39) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(40) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (41) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(42) ...to here | 'yyparse': event 53 | |gl/parse-datetime.y:776:15: | 776 | if (! apply_relative_time (pc, $2, 1)) YYABORT; | | ^ | | | | | (53) calling 'apply_relative_time' from 'yyparse' | +--> 'apply_relative_time': events 54-55 | | 313 | apply_relative_time (parser_control *pc, relative_time rel, int factor) | | ^ ~ | | | | | | (54) entry to 'apply_relative_time' (55) region created on stack here | 'apply_relative_time': event 56 | |lto1: | (56): use of uninitialized value 'rel.month' here | gl/parse-datetime.c: In function 'yyparse': gl/parse-datetime.c:1798:12: warning: use of uninitialized value 'yylval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1798 | *++yyvsp = yylval; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-27 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1593 | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | | ~ | | | | | (17) region created on stack here | | (18) capacity: 56 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (19) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(20) ...to here | | (21) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(22) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (23) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(24) ...to here | | (25) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(26) ...to here | | (27) calling 'yylex' from 'yyparse' | +--> 'yylex': events 28-29 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (28) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (29) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 30 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (30) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 31 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(31) ...to here | <------+ | 'yyparse': events 32-39 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (32) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (33) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(34) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (35) following 'false' branch (when 'yyn_241 > 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1791 || if (yyerrstatus) | || ~ | || | | |+---->(36) ...to here | | (37) following 'false' branch (when 'yyerrstatus_210 == 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------------+ | 1798 || *++yyvsp = yylval; | || ~ | || | | |+---------->(38) ...to here | | (39) use of uninitialized value 'yylval' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(23) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (24) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(25) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (26) use of uninitialized value '*_14' here | gl/parse-datetime.c:1831:9: warning: use of uninitialized value '*_14' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1831 | yyval = yyvsp[1-yylen]; | ^ 'parse_datetime_body': events 1-6 | |gl/parse-datetime.y:1747:1: | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1514 | if (c_isalpha (c)) | | ~ | | | | | (28) inlined call to 'c_isalpha' from 'yylex' | +--> 'c_isalpha': event 29 | |gl/./c-ctype.h:185:3: | 185 | switch (c) | | ^ | | | | | (29) following 'default:' branch... ->-+ | | | | <------+ | 'yylex': event 30 | |gl/parse-datetime.y:1540:10: | | | | |+-----------------------------------------+ | 1540 || if (c != '(') | || ^ | || | | |+-------->(30) ...to here | <------+ | 'yyparse': events 31-36 | |gl/parse-datetime.c:1750:16: | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (31) returning to 'yyparse' from 'yylex' |...... | 1778 | if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | | ~ | | | | | (32) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------+ | 1779 || goto yydefault; | 1780 || yyn = yytable[yyn]; | || ~ | || | | |+-------------->(33) ...to here | 1781 | if (yyn <= 0) | | ~ | | | | | (34) following 'true' branch (when 'yyn_241 <= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 1785 || yyn = -yyn; | || ~ | || | | |+--------->(35) ...to here |...... | 1831 | yyval = yyvsp[1-yylen]; | | ~ | | | | | (36) use of uninitialized value '*_14' here | gl/parse-datetime.y:688:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 19:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1934 || case 19: /* time: tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:688:9: | 688 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:693:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:693:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:693:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 20:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1943 || case 20: /* time: tUNUMBER ':' tUNUMBER tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:693:9: | 693 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:698:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:9: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:698:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:698:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 21:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1952 || case 21: /* time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:698:105: | 698 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:707:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 23:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1961 || case 23: /* iso_8601_time: tUNUMBER zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:707:9: | 707 | set_hhmmss (pc, $1.value, 0, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:712:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:712:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:712:9: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 24:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1970 || case 24: /* iso_8601_time: tUNUMBER ':' tUNUMBER o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:712:9: | 712 | set_hhmmss (pc, $1.value, $3.value, 0, 0); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -216 till byte -209 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |208 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:717:9: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:9: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) out-of-bounds read from byte -104 till byte -97 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:717:9: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |96 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:717:105: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 25:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1979 || case 25: /* iso_8601_time: tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:717:105: | 717 | set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:731:15: warning: use of uninitialized value '_59->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 28:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1988 || case 28: /* zone_offset: tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:731:15: | 731 | if (! time_zone_hhmm (pc, $1, $2)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_59->textintval' here | gl/parse-datetime.y:770:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 770 | { pc->time_zone = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 33:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2024 || case 33: /* zone: tZONE relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:770:35: | 770 | { pc->time_zone = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:780:15: warning: use of uninitialized value '_72->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 35:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2042 || case 35: /* zone: tZONE tSNUMBER o_colon_minutes */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:780:15: | 780 | { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; | | ^ | | | | | (54) use of uninitialized value '_72->textintval' here | gl/parse-datetime.y:785:35: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 785 | { pc->time_zone = $1 + 60 * 60; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 37:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2055 || case 37: /* zone: tZONE tDST */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:785:35: | 785 | { pc->time_zone = $1 + 60 * 60; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:797:36: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 797 | pc->day_number = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 39:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2070 || case 39: /* day: tDAY ',' */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:797:36: | 797 | pc->day_number = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:801:37: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 801 | pc->day_ordinal = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 40:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2079 || case 40: /* day: tORDINAL tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:801:37: | 801 | pc->day_ordinal = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:807:49: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 807 | pc->day_ordinal = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 41:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2089 || case 41: /* day: tUNUMBER tDAY */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:807:49: | 807 | pc->day_ordinal = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:816:43: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 816 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:816:43: | 816 | pc->month = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:816:43: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:817:40: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 817 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 42:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2099 || case 42: /* date: tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:817:40: | 817 | pc->day = $3.value; | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:826:40: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 826 | if (4 <= $1.digits) | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:826:40: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) out-of-bounds read from byte -152 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:826:40: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-------------------------+ |read of 'idx_t' (8 bytes)| +-------------------------+ ^ | | +-------------------------+ +----------+-------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +-------------------------+ +--------------------------------------+ |~~~~~~~~~~~~+~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |144 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:836:22: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 836 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | | (56) out-of-bounds read from byte -168 till byte -145 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:836:22: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 836 | pc->year = $1; | ^ +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+----+ +--------+-------+ |under-read of 24 bytes| |144 bytes| |size: 1120 bytes| +----------------------+ +---------+ +----------------+ gl/parse-datetime.y:837:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 837 | pc->month = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:837:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 837 | pc->month = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:838:44: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 838 | pc->day = $5.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'true' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 836 || pc->year = $1; | || ~ | || | | |+-------------------->(55) ...to here | 837 | pc->month = $3.value; | 838 | pc->day = $5.value; | | | | | | | (56) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:847:47: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 847 | pc->month = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | | (56) out-of-bounds read from byte -160 till byte -153 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:847:47: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 847 | pc->month = $1.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +----------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||~+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +----------+----------+ +----+----+ +--------+-------+ |under-read of 8 bytes| |152 bytes| |size: 1120 bytes| +---------------------+ +---------+ +----------------+ gl/parse-datetime.y:848:45: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 848 | pc->day = $3.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 43:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2108 || case 43: /* date: tUNUMBER '/' tUNUMBER '/' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': events 54-56 | |gl/parse-datetime.y:826:12: | 826 | if (4 <= $1.digits) | | ^ | | | | | (54) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 847 || pc->month = $1.value; | || | || | | |+--------------------------------------------->(55) ...to here | 848 | pc->day = $3.value; | | | | | | | (56) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:848:45: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' 848 | pc->day = $3.value; | ^ +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:855:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 855 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:855:41: | 855 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:855:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:856:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 856 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 44:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2145 || case 44: /* date: tUNUMBER tMONTH tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:856:31: | 856 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:863:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 863 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:863:31: | 863 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -49 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:863:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |48 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:864:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 45:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2157 || case 45: /* date: tMONTH tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:864:13: | 864 | if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:870:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 870 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 46:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2169 || case 46: /* date: tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:870:31: | 870 | pc->month = $1; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:875:31: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 875 | pc->month = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:875:31: | 875 | pc->month = $1; | | ^ | | | | | (54) out-of-bounds read from byte -112 till byte -105 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:875:31: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+-----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+-----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+~||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+----+ +--------+-------+ | |104 bytes| |size: 1120 bytes| | +---------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:876:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 876 | pc->day = $2.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 47:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2178 || case 47: /* date: tMONTH tUNUMBER ',' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:876:41: | 876 | pc->day = $2.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:876:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:881:41: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 881 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 48:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2188 || case 48: /* date: tUNUMBER tMONTH */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:881:41: | 881 | pc->day = $1.value; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:886:41: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 886 | pc->day = $1.value; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:886:41: | 886 | pc->day = $1.value; | | ^ | | | | | (54) out-of-bounds read from byte -48 till byte -41 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:886:41: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +----------------------------+ |read of 'intmax_t' (8 bytes)| +----------------------------+ ^ | | +----------------------------+ +----------+------------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+------------+-------------+ | | | 'yyvsa' (type: 'union YYSTYPE[20]') | +----------------------------+ +-------------------------------------+ |~~~~~~~~~~~~~+~~~~~~~~~~~~~~||+||~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~| | | | | +----+---+ +--------+-------+ | |40 bytes| |size: 1120 bytes| | +--------+ +----------------+ +----------+----------+ |under-read of 8 bytes| +---------------------+ gl/parse-datetime.y:887:31: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 887 | pc->month = $2; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 49:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2197 || case 49: /* date: tUNUMBER tMONTH tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:887:31: | 887 | pc->month = $2; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:897:18: warning: stack-based buffer under-read [CWE-127] [-Wanalyzer-out-of-bounds] 897 | pc->year = $1; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) capacity: 1120 bytes |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:897:18: | 897 | pc->year = $1; | | ^ | | | | | (54) out-of-bounds read from byte -56 till byte -33 but 'yyvsa' starts at byte 0 | gl/parse-datetime.y:897:18: note: valid subscripts for 'yyvsa' are '[0]' to '[19]' +-----------------------------------+ |read of 'struct textint' (24 bytes)| +-----------------------------------+ ^ | | +-----------------------------------+ +----------+----------+-------------+ | | | [0] | ... | [19] | | before valid range | +----------+----------+-------------+ | | |'yyvsa' (type: 'union YYSTYPE[20]')| +-----------------------------------+ +-----------------------------------+ |~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~||||~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~| | | | +-----------+----------+ +----+---+ +--------+-------+ |under-read of 24 bytes| |32 bytes| |size: 1120 bytes| +----------------------+ +--------+ +----------------+ gl/parse-datetime.y:898:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 51:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2207 || case 51: /* iso_8601_date: tUNUMBER tSNUMBER tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:898:13: | 898 | if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:905:15: warning: use of uninitialized value '_132->rel' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 52:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2218 || case 52: /* rel: relunit tAGO */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:905:15: | 905 | { if (! apply_relative_time (pc, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value '_132->rel' here | gl/parse-datetime.y:914:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 55:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2236 || case 55: /* relunit: tORDINAL tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:914:69: | 914 | { $$ = RELATIVE_TIME_0; $$.year = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:916:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 56:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2242 || case 56: /* relunit: tUNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:916:81: | 916 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:920:70: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 58:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2254 || case 58: /* relunit: tORDINAL tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:920:70: | 920 | { $$ = RELATIVE_TIME_0; $$.month = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:922:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 59:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2260 || case 59: /* relunit: tUNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:922:82: | 922 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:927:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 61:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2272 || case 61: /* relunit: tORDINAL tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:927:13: | 927 | if (ckd_mul (&$$.day, $1, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:930:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 62:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2279 || case 62: /* relunit: tUNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:930:13: | 930 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:934:69: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 64:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2292 || case 64: /* relunit: tORDINAL tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:934:69: | 934 | { $$ = RELATIVE_TIME_0; $$.hour = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:936:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 65:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2298 || case 65: /* relunit: tUNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:936:81: | 936 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:940:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 67:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2310 || case 67: /* relunit: tORDINAL tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:940:72: | 940 | { $$ = RELATIVE_TIME_0; $$.minutes = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:942:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 68:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2316 || case 68: /* relunit: tUNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:942:84: | 942 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:946:72: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 70:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2328 || case 70: /* relunit: tORDINAL tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:946:72: | 946 | { $$ = RELATIVE_TIME_0; $$.seconds = $1; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].intval' here | gl/parse-datetime.y:948:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 71:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2334 || case 71: /* relunit: tUNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:948:84: | 948 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:950:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 72:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2340 || case 72: /* relunit: tSDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:950:82: | 950 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:952:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 73:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2346 || case 73: /* relunit: tUDECIMAL_NUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:952:82: | 952 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].timespec.tv_sec' here | gl/parse-datetime.y:960:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 76:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2358 || case 76: /* relunit_snumber: tSNUMBER tYEAR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:960:81: | 960 | { $$ = RELATIVE_TIME_0; $$.year = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:962:82: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 77:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2364 || case 77: /* relunit_snumber: tSNUMBER tMONTH_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:962:82: | 962 | { $$ = RELATIVE_TIME_0; $$.month = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:965:13: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 78:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2370 || case 78: /* relunit_snumber: tSNUMBER tDAY_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:965:13: | 965 | if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:967:81: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 79:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2377 || case 79: /* relunit_snumber: tSNUMBER tHOUR_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:967:81: | 967 | { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:969:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 80:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2383 || case 80: /* relunit_snumber: tSNUMBER tMINUTE_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:969:84: | 969 | { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:971:84: warning: use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 81:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2389 || case 81: /* relunit_snumber: tSNUMBER tSEC_UNIT */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:971:84: | 971 | { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } | | ^ | | | | | (54) use of uninitialized value 'MEM[(union YYSTYPE *)yyvsp_217 + -56B].textintval.value' here | gl/parse-datetime.y:985:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 86:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2401 || case 86: /* signed_seconds: tSNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:985:79: | 985 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:992:79: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 88:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2408 || case 88: /* unsigned_seconds: tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:992:79: | 992 | $$ = (struct timespec) { .tv_sec = $1.value }; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | gl/parse-datetime.y:1005:9: warning: use of uninitialized value '_176->textintval' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1005 | digits_to_date_time (pc, $1); | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 90:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2421 || case 90: /* hybrid: tUNUMBER relunit_snumber */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1005:9: | 1005 | digits_to_date_time (pc, $1); | | ^ | | | | | (54) use of uninitialized value '_176->textintval' here | gl/parse-datetime.y:1014:47: warning: use of uninitialized value 'yyvsp_217->textintval.value' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 1014 | { $$ = $2.value; } | ^ 'parse_datetime_body': events 1-6 | | 1747 | parse_datetime_body (struct timespec *result, char const *p, | | ^ | | | | | (1) entry to 'parse_datetime_body' |...... | 1829 | if (! localtime_rz (tz, &now->tv_sec, &tmp)) | | ~ | | | | | (2) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1835 || if (*p == '\0') | || ~ | || | | |+----->(3) ...to here |...... | 1843 | if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1849 || pc.year.digits = 0; | || ~ | || | | |+---------------->(5) ...to here |...... | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ~ | | | | | (6) calling 'populate_local_time_zone_table' from 'parse_datetime_body' | +--> 'populate_local_time_zone_table': events 7-9 | | 1588 | populate_local_time_zone_table (parser_control *pc, struct tm const *tm) | | ^ | | | | | (7) entry to 'populate_local_time_zone_table' |...... | 1601 | if (tm->tm_zone[0]) | | ~ | | | | | (8) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------+ | 1608 || e->name = zone; | || ~ | || | | |+--------->(9) ...to here | <------+ | 'parse_datetime_body': events 10-12 | | 1878 | populate_local_time_zone_table (&pc, &tmp); | | ^ | | | | | (10) returning to 'parse_datetime_body' from 'populate_local_time_zone_table' |...... | 1882 | for (int quarter = 1; quarter <= 3; quarter++) | | ~ | | | | | (11) following 'true' branch (when 'quarter_174 != 4')... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------+ | 1885 || if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | || ~ | || | | |+--------->(12) ...to here | 'parse_datetime_body': event 13 | | 1885 | if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'parse_datetime_body': event 14 | |lto1: | (14): ...to here | 'parse_datetime_body': event 15 | | 1910 | if (yyparse (&pc) != 0) | | ^ | | | | | (15) calling 'yyparse' from 'parse_datetime_body' | +--> 'yyparse': events 16-26 | |gl/parse-datetime.c:1583:1: | 1583 | yyparse (parser_control *pc) | | ^ | | | | | (16) entry to 'yyparse' |...... | 1614 | YYSTYPE yyvsa[YYINITDEPTH]; | | ~ | | | | | (17) region created on stack here |...... | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (18) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(19) ...to here | | (20) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(21) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (22) following 'false' branch (when 'yyn_236 != -91')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1747 || if (yychar == YYEMPTY) | || ~ | || | | |+---->(23) ...to here | | (24) following 'true' branch (when 'yychar_193 == -2')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------+ | 1750 || yychar = yylex (&yylval, pc); | || ~ | || | | |+-------------->(25) ...to here | | (26) calling 'yylex' from 'yyparse' | +--> 'yylex': events 27-28 | |gl/parse-datetime.y:1427:1: | 1427 | yylex (union YYSTYPE *lvalp, parser_control *pc) | | ^ | | | | | (27) entry to 'yylex' |...... | 1529 | tp = lookup_word (pc, buff); | | ~ | | | | | (28) calling 'lookup_word' from 'yylex' | +--> 'lookup_word': events 29-30 | | 1359 | lookup_word (parser_control const *pc, char *word) | | ^ | | | | | (29) entry to 'lookup_word' |...... | 1373 | if (strcmp (word, tp->name) == 0) | | ~ | | | | | (30) following 'true' branch (when the strings are equal)... ->-+ | | | | 'lookup_word': event 31 | |lto1: | (31): ...to here | <------+ | 'yylex': event 32 | | 1529 | tp = lookup_word (pc, buff); | | ^ | | | | | (32) returning to 'yylex' from 'lookup_word' | <------+ | 'yyparse': events 33-53 | |gl/parse-datetime.c:1750:16: | 1662 | if (yyss + yystacksize - 1 <= yyssp) | | ~ | | | | | (44) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 1726 || if (yystate == YYFINAL) | || ~ | || | | |+---->(45) ...to here | | (46) following 'false' branch (when 'yystate_206 != 12')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 1729 || goto yybackup; | || ~ | || | | |+->(47) ...to here |...... | 1741 | if (yypact_value_is_default (yyn)) | | ~ | | | | | (48) following 'true' branch (when 'yyn_236 == -91')... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 1742 || goto yydefault; | || ~ | || | | |+--->(49) ...to here |...... | 1750 | yychar = yylex (&yylval, pc); | | ^ | | | | | (33) returning to 'yyparse' from 'yylex' |...... | 1753 | if (yychar <= YYEOF) | | ~ | | | | | (34) following 'false' branch (when 'yychar_194 > 0')... ->-+ | | | |...... | | | | |+-----------------------------------------------------------------+ | 1759 || else if (yychar == YYerror) | || ~ | || | | |+--------->(35) ...to here | | (36) following 'true' branch (when 'yychar_194 == 256')... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 1767 || goto yyerrlab1; | || ~ | || | | |+----->(37) ...to here |...... | 1811 | if (yyn == 0) | | ~ | | | | | (50) following 'false' branch (when 'yyn_246 != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------+ | 1812 || goto yyerrlab; | 1813 || goto yyreduce; | || ~ | || | | |+->(51) ...to here |...... | 1835 | switch (yyn) | | ~ | | | | | (52) following 'case 92:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 2438 || case 92: /* o_colon_minutes: ':' tUNUMBER */ | || ~ | || | | |+->(53) ...to here |...... | 2548 | if (!yypact_value_is_default (yyn)) | | ~ | | | | | (38) following 'true' branch (when 'yyn_388 != -91')... ->-+ | | | | | | | |+--------------------------------------------------------------------+ | 2549 || { | 2550 || yyn += YYSYMBOL_YYerror; | || ~ | || | | |+------------->(39) ...to here | 2551 | if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) | | ~ | | | | | (40) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 2552 || { | 2553 || yyn = yytable[yyn]; | || ~ | || | | |+-------------------------->(41) ...to here | 2554 | if (0 < yyn) | | ~ | | | | | (42) following 'true' branch (when 'yyn_390 > 0')... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 2572 || *++yyvsp = yylval; | || ~ | || | | |+---------->(43) ...to here | 'yyparse': event 54 | |gl/parse-datetime.y:1014:47: | 1014 | { $$ = $2.value; } | | ^ | | | | | (54) use of uninitialized value 'yyvsp_217->textintval.value' here | make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src' Making all in tests make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/tests' Making all in . make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/tests' CC utils.lo CC seccomp.lo CC utils-adv.lo CC pkcs11/pkcs11-mock.lo utils.c: In function '_fail': utils.c:96:9: warning: ignoring return value of 'vasprintf' declared with attribute 'warn_unused_result' [-Wunused-result] 96 | vasprintf(&str, format, arg_ptr); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC pkcs11/pkcs11-mock2.lo CC pkcs11/pkcs11-mock3.lo CC pkcs11/pkcs11-mock4.lo CCLD libutils.la CCLD libpkcs11mock1.la CCLD libpkcs11mock2.la CCLD libpkcs11mock4.la CCLD libpkcs11mock3.la make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/tests' Making all in cert-tests make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/tests/cert-tests' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/tests/cert-tests' Making all in slow make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/tests/slow' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/tests/slow' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/tests' Making all in fuzz make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/fuzz' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/fuzz' Making all in doc/manpages make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/doc/manpages' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/doc/manpages' Making all in doc make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/doc' Making all in examples make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/doc/examples' CC ex-client-resume.o CC ex-alert.lo CC ex-pkcs12.lo CC ex-session-info.lo CC ex-x509-info.lo CC ex-verify.lo CC ex-client-x509-3.1.lo CC tcp.lo CC udp.lo CC ex-pkcs11-list.lo CC verify.lo CC ex-verify-ssh.lo CC ex-client-dtls.o CC ex-cert-select.o CC ex-client-x509.o CC ex-serv-dtls.o CC print-ciphersuites.o CC ex-serv-x509.o CXX ex_cxx-ex-cxx.o CC ex-client-anon.o CC ex-serv-anon.o CC ex-cert-select-pkcs11.o CC ex-client-psk.o CC ex-serv-psk.o CC ex-ocsp-client.o CCLD libexamples.la CC tlsproxy/buffer.o CC tlsproxy/crypto-gnutls.o CC tlsproxy/tlsproxy.o CCLD ex-client-resume CCLD ex-client-dtls CCLD ex-cert-select CCLD ex-client-x509 CCLD ex-serv-dtls CCLD print-ciphersuites CCLD ex-serv-x509 CXXLD ex-cxx ex-serv-x509.c: In function 'main': ex-serv-x509.c:113:9: warning: 'listen' on possibly invalid file descriptor 'listen_sd_64' [-Wanalyzer-fd-use-without-check] 113 | listen(listen_sd, 1024); | ^ 'main': events 1-16 60 | CHECK(gnutls_global_init()); | ^ | | | (1) following 'true' branch... ->-+ | | | | |+------------------------------------------+ 61 || 62 || CHECK(gnutls_certificate_allocate_credentials(&x509_cred)); || ~ || | |+------->(2) ...to here | (3) following 'true' branch... ->-+ | | | | |+------------------------------------------+ 63 || 64 || CHECK(gnutls_certificate_set_x509_trust_file(x509_cred, CAFILE, || ~ || | |+------->(4) ...to here | (5) following 'true' branch... ->-+ | | ...... | | |+------------------------------------------+ 67 || CHECK(gnutls_certificate_set_x509_crl_file(x509_cred, CRLFILE, || ~ || | |+------->(6) ...to here | (7) following 'true' branch... ->-+ | | ...... | | |+------------------------------------------+ 76 || CHECK(gnutls_certificate_set_x509_key_file(x509_cred, CERTFILE, KEYFILE, || ~ || | |+------->(8) ...to here | (9) following 'true' branch... ->-+ | | ...... | | |+------------------------------------------+ 79 || CHECK(gnutls_certificate_set_ocsp_status_request_file( || ~ || | |+------->(10) ...to here | (11) following 'true' branch... ->-+ | | ...... | | |+-------------------------------------------+ 82 || CHECK(gnutls_priority_init(&priority_cache, NULL, NULL)); || ~ || | |+------->(12) ...to here | (13) following 'true' branch... ->-+ | | ...... | | |+-------------------------------------------+ 95 || gnutls_certificate_set_known_dh_params(x509_cred, || ~ || | |+------->(14) ...to here ...... 101 | listen_sd = socket(AF_INET, SOCK_STREAM, 0); | ~ | | | (15) when 'socket' fails ...... 113 | listen(listen_sd, 1024); | ~ | | | (16) 'listen_sd_64' could be invalid CCLD ex-client-anon CCLD ex-serv-anon CCLD ex-cert-select-pkcs11 CCLD ex-client-psk CCLD ex-serv-psk CCLD tlsproxy/tlsproxy CCLD ex-ocsp-client ex-ocsp-client.c: In function 'load_cert': ex-ocsp-client.c:182:19: warning: use of uninitialized value 'size' [CWE-457] [-Wanalyzer-use-of-uninitialized-value] 182 | data.size = size; | ^ 'main': events 1-6 | | 35 | int main(int argc, char *argv[]) | | ^ | | | | | (1) entry to 'main' |...... | 55 | if (argc > 4) | | ~ | | | | | (2) following 'true' branch (when 'argc_32(D) > 4')... ->-+ | | | | | | | |+---------------------------------------------------------------------+ | 56 || hostname = argv[4]; | || ~ | || | | |+------------------------>(3) ...to here |...... | 59 | if (ret < 0) | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 62 || cert = load_cert(cert_file); | || ~ | || | | |+-------------->(5) ...to here | | (6) calling 'load_cert' from 'main' | +--> 'load_cert': events 7-12 | | 170 | static gnutls_x509_crt_t load_cert(const char *cert_file) | | ^ | | | | | (7) entry to 'load_cert' |...... | 175 | size_t size; | | ~ | | | | | (8) region created on stack here | | (9) capacity: 8 bytes |...... | 178 | if (ret < 0) | | ~ | | | | | (10) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 181 || data.data = (void *)read_file(cert_file, RF_BINARY, &size); | || ~ | || | | |+--------------------------->(11) ...to here | | (12) calling '_gnutls_read_file' from 'load_cert' | +--> '_gnutls_read_file': events 13-15 | |../../gl/read-file.c:190:1: | 190 | read_file (const char *filename, int flags, size_t *length) | | ^ | | | | | (13) entry to '_gnutls_read_file' | 191 | { | 192 | const char *mode = (flags & RF_BINARY) ? "rbe" : "re"; | | ~ | | | | | (14) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------------------------------------+ | 193 || FILE *stream = fopen (filename, mode); | || ~ | || | | |+---------------->(15) ...to here | <------+ | 'load_cert': events 16-17 | |ex-ocsp-client.c:181:29: | 181 | data.data = (void *)read_file(cert_file, RF_BINARY, &size); | | ^ | | | | | (16) returning to 'load_cert' from '_gnutls_read_file' | 182 | data.size = size; | | ~ | | | | | (17) use of uninitialized value 'size' here | ex-ocsp-client.c: In function 'load_cert': ex-ocsp-client.c:182:19: warning: 'size' may be used uninitialized [-Wmaybe-uninitialized] 182 | data.size = size; | ^ ex-ocsp-client.c:175:16: note: 'size' was declared here 175 | size_t size; | ^ tlsproxy/tlsproxy.c: In function 'runlistener': tlsproxy/tlsproxy.c:89:22: warning: leak of file descriptor 'bindtoaddress (listenaddr)' [CWE-775] [-Wanalyzer-fd-leak] 89 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | ^ 'runlistener': events 1-2 | | 214 | static int runlistener(void) | | ^ | | | | | (1) entry to 'runlistener' |...... | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ | | | | | (2) calling 'bindtoaddress' from 'runlistener' | +--> 'bindtoaddress': events 3-13 | | 57 | static int bindtoaddress(char *addrport) | | ^ | | | | | (3) entry to 'bindtoaddress' |...... | 80 | if (s != 0) { | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 88 || for (rp = result; rp != NULL; rp = rp->ai_next) { | || ~ ~ | || | | | || | (6) following 'true' branch (when 'rp_14' is non-NULL)... ->-+ | |+--------------->(5) ...to here | | | | | | | | |+------------------------------------------------------------------------------------------+ | 89 || fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | || ~ | || | | |+-------------------->(7) ...to here | | (8) socket created here | | (9) when 'socket' succeeds | 90 | | 91 | if (fd >= 0) { | | ~ | | | | | (10) following 'true' branch (when 'fd_38 >= 0')... ->-+ | | | | | | | |+--------------------------------------------------------------------------+ | 92 || int one = 1; | || ~ | || | | |+--------------------------->(11) ...to here | 93 | if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, | | ~ | | | | | (12) following 'false' branch... ->-+ | | | |...... | | | | |+---------------------------------------------------------------+ | 98 || if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | || ~ | || | | |+-------------------------------------->(13) ...to here | 'bindtoaddress': event 14 | | 98 | if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ^ | | | | | (14) following 'true' branch... ->-+ | | | | 'bindtoaddress': event 15 | |lto1: | (15): ...to here | 'bindtoaddress': events 16-19 | | 104 | if (!rp) { | | ^ | | | | | (16) following 'false' branch (when 'rp_28' is non-NULL)... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------+ | 110 || freeaddrinfo(result); /* No longer needed */ | || ~ | || | | |+------->(17) ...to here | 111 | | 112 | if (listen(fd, 5) < 0) { | | ~ | | | | | (18) stream socket marked as passive here via 'listen' | | (19) when 'listen' succeeds | 'bindtoaddress': event 20 | | 112 | if (listen(fd, 5) < 0) { | | ^ | | | | | (20) following 'false' branch... ->-+ | | | | 'bindtoaddress': event 21 | | | | | |+-----------------------------------------------+ | 83 || return -1; | || ^ | || | | |+---------------------->(21) ...to here | <------+ | 'runlistener': event 22 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ^ | | | | | (22) returning to 'runlistener' from 'bindtoaddress' | 'runlistener': event 23 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ^ | | | | | (23) following 'false' branch... ->-+ | | | | 'runlistener': event 24 | |lto1: | (24): ...to here | 'bindtoaddress': event 25 | | 89 | fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | | ^ | | | | | (25) 'bindtoaddress (listenaddr)' leaks here | In function 'bufGetCount', inlined from 'bufIsOverHWM' at tlsproxy/buffer.c:197:9: tlsproxy/buffer.c:207:14: warning: dereference of NULL 'b_4(D)' [CWE-476] [-Wanalyzer-null-dereference] 207 | if (b->empty) | ^ 'runlistener': events 1-2 | |tlsproxy/tlsproxy.c:214:12: | 214 | static int runlistener(void) | | ^ | | | | | (1) entry to 'runlistener' |...... | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ | | | | | (2) calling 'bindtoaddress' from 'runlistener' | +--> 'bindtoaddress': events 3-12 | | 57 | static int bindtoaddress(char *addrport) | | ^ | | | | | (3) entry to 'bindtoaddress' |...... | 80 | if (s != 0) { | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 88 || for (rp = result; rp != NULL; rp = rp->ai_next) { | || ~ ~ | || | | | || | (6) following 'true' branch (when 'rp_14' is non-NULL)... ->-+ | |+--------------->(5) ...to here | | | | | | | | |+------------------------------------------------------------------------------------------+ | 89 || fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | || ~ | || | | |+-------------------->(7) ...to here | | (8) when 'socket' succeeds | 90 | | 91 | if (fd >= 0) { | | ~ | | | | | (9) following 'true' branch (when 'fd_38 >= 0')... ->-+ | | | | | | | |+-------------------------------------------------------------------------+ | 92 || int one = 1; | || ~ | || | | |+--------------------------->(10) ...to here | 93 | if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, | | ~ | | | | | (11) following 'false' branch... ->-+ | | | |...... | | | | |+---------------------------------------------------------------+ | 98 || if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | || ~ | || | | |+-------------------------------------->(12) ...to here | 'bindtoaddress': event 13 | | 98 | if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'bindtoaddress': event 14 | |lto1: | (14): ...to here | 'bindtoaddress': events 15-17 | | 104 | if (!rp) { | | ^ | | | | | (15) following 'false' branch (when 'rp_28' is non-NULL)... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------+ | 110 || freeaddrinfo(result); /* No longer needed */ | || ~ | || | | |+------->(16) ...to here | 111 | | 112 | if (listen(fd, 5) < 0) { | | ~ | | | | | (17) when 'listen' succeeds | 'bindtoaddress': event 18 | | 112 | if (listen(fd, 5) < 0) { | | ^ | | | | | (18) following 'false' branch... ->-+ | | | | 'bindtoaddress': event 19 | | | | | |+-----------------------------------------------+ | 83 || return -1; | || ^ | || | | |+---------------------->(19) ...to here | <------+ | 'runlistener': event 20 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ^ | | | | | (20) returning to 'runlistener' from 'bindtoaddress' | 'runlistener': event 21 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ^ | | | | | (21) following 'false' branch... ->-+ | | | | 'runlistener': event 22 | |lto1: | (22): ...to here | 'runlistener': event 23 | | 228 | while (!rxsigquit) { | | ^ | | | | | (23) following 'true' branch... ->-+ | | | | 'runlistener': event 24 | |lto1: | (24): ...to here | 'runlistener': events 25-26 | | 237 | if (rxsigquit) | | ^ | | | | | (25) following 'false' branch... ->-+ | | | | | | | |+-------------------------------------------------------+ | 238 || break; | 239 || if (nofork < 2) { | || ~ | || | | |+-------------------------->(26) ...to here | 'runlistener': events 27-29 | | 239 | if (nofork < 2) { | | ^ | | | | | (27) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 240 || int ret = runproxy(fd); | || ~ | || | | |+--------------------------------->(28) ...to here | | (29) calling 'runproxy' from 'runlistener' | +--> 'runproxy': events 30-31 | | 178 | static int runproxy(int acceptfd) | | ^ | | | | | (30) entry to 'runproxy' |...... | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ~ | | | | | (31) calling 'connecttoaddress' from 'runproxy' | +--> 'connecttoaddress': events 32-39 | | 120 | static int connecttoaddress(char *addrport) | | ^ | | | | | (32) entry to 'connecttoaddress' |...... | 146 | if (s != 0) { | | ~ | | | | | (33) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 153 || for (rp = result; rp != NULL; rp = rp->ai_next) { | || ~ ~ | || | | | || | (35) following 'true' branch (when 'rp_14' is non-NULL)... ->-+ | |+--------------->(34) ...to here | | | | | | | | |+-------------------------------------------------------------------------------------------+ | 154 || fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | || ~ | || | | |+-------------------->(36) ...to here | | (37) when 'socket' succeeds | 155 | if (fd >= 0) { | | ~ | | | | | (38) following 'true' branch (when 'fd_42 >= 0')... ->-+ | | | | | | | |+--------------------------------------------------------------------------+ | 156 || if (connect(fd, rp->ai_addr, rp->ai_addrlen) == 0) | || ~ | || | | |+----------------------------------------->(39) ...to here | 'connecttoaddress': events 40-43 | | 156 | if (connect(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ^ | | | | | (40) following 'true' branch... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 162 || if (!rp) { | || ~ | || | | |+---------->(41) ...to here | | (42) following 'false' branch (when 'rp_28' is non-NULL)... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------+ | 168 || freeaddrinfo(result); /* No longer needed */ | || ~ | || | | |+------->(43) ...to here | <------+ | 'runproxy': event 44 | | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ^ | | | | | (44) returning to 'runproxy' from 'connecttoaddress' | 'runproxy': events 45-47 | | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ^ | | | | | (45) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 187 || tlssession_t *session = tlssession_new(server, keyfile, certfile, | || ~ | || | | |+------------------------------->(46) ...to here | | (47) calling 'tlssession_new' from 'runproxy' | +--> 'tlssession_new': events 48-64 | |tlsproxy/crypto-gnutls.c:163:15: | 163 | tlssession_t *tlssession_new(int isserver, char *keyfile, char *certfile, | | ^ | | | | | (48) entry to 'tlssession_new' |...... | 172 | if (!s) | | ~ | | | | | (49) following 'false' branch (when 's_41' is non-NULL)... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 175 || if (quitfn) | || ~ | || | | |+---------->(50) ...to here | | (51) following 'true' branch (when 'quitfn_42(D)' is non-NULL)... ->-+ | | | | | | | |+--------------------------------------------------------------------------------+ | 176 || s->quitfn = quitfn; | || ~ | || | | |+------------------------->(52) ...to here |...... | 180 | if (erroutfn) | | ~ | | | | | (53) following 'false' branch (when 'erroutfn_45(D)' is NULL)... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------------+ | 183 || s->erroutfn = stderrout; | || ~ | || | | |+--------------------------->(54) ...to here |...... | 190 | if (gnutls_certificate_allocate_credentials(&s->creds) < 0) { | | ~ | | | | | (55) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 195 || if (cacertfile != NULL) { | || ~ | || | | |+---------->(56) ...to here |...... | 232 | if (ret < 0) { | | ~ | | | | | (57) following 'false' branch (when 'ret_26 >= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 238 || gnutls_session_set_ptr(s->session, (void *)s); | || ~ | || | | |+------->(58) ...to here |...... | 251 | if (ret < 0) { | | ~ | | | | | (59) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 257 || ret = gnutls_credentials_set(s->session, GNUTLS_CRD_CERTIFICATE, | || ~ | || | | |+------------->(60) ...to here | 258 | s->creds); | 259 | if (ret < 0) { | | ~ | | | | | (61) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 265 || if (isserver) { | || ~ | || | | |+---------->(62) ...to here | | (63) following 'true' branch (when 'isserver_69(D) != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------------------+ | 266 || /* requests but does not check a client certificate */ | 267 || gnutls_certificate_server_set_request(s->session, | || ~ | || | | |+--------------->(64) ...to here | <------+ | 'runproxy': events 65-67 | |tlsproxy/tlsproxy.c:187:33: | 187 | tlssession_t *session = tlssession_new(server, keyfile, certfile, | | ^ | | | | | (65) returning to 'runproxy' from 'tlssession_new' |...... | 190 | if (!session) { | | ~ | | | | | (66) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 198 || if (server) | || ~ | || | | |+----------->(67) ...to here | 'runproxy': events 68-70 | | 198 | if (server) | | ^ | | | | | (68) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 199 || ret = tlssession_mainloop(acceptfd, connectfd, session); | || ~ | || | | |+--------------------->(69) ...to here | | (70) calling 'tlssession_mainloop' from 'runproxy' | +--> 'tlssession_mainloop': events 71-72 | |tlsproxy/crypto-gnutls.c:293:5: | 293 | int tlssession_mainloop(int cryptfd, int plainfd, tlssession_t *s) | | ^ | | | | | (71) entry to 'tlssession_mainloop' |...... | 303 | buffer_t *plainToCrypt = bufNew(BUF_SIZE, BUF_HWM); | | ~ | | | | | (72) calling 'bufNew' from 'tlssession_mainloop' | +--> 'bufNew': events 73-76 | |tlsproxy/buffer.c:78:11: | 78 | buffer_t *bufNew(ssize_t size, ssize_t hwm) | | ^ | | | | | (73) entry to 'bufNew' | 79 | { | 80 | buffer_t *b = calloc(1, sizeof(buffer_t)); | | ~ | | | | | (74) allocated here | 81 | if (!b) | | ~ | | | | | (75) assuming 'b_6' is NULL | | (76) following 'true' branch (when 'b_6' is NULL)... ->-+ | | | | 'bufNew': event 77 | |lto1: | (77): ...to here | <------+ | 'tlssession_mainloop': events 78-79 | |tlsproxy/crypto-gnutls.c:303:34: | 303 | buffer_t *plainToCrypt = bufNew(BUF_SIZE, BUF_HWM); | | ^ | | | | | (78) returning to 'tlssession_mainloop' from 'bufNew' | 304 | buffer_t *cryptToPlain = bufNew(BUF_SIZE, BUF_HWM); | | ~ | | | | | (79) calling 'bufNew' from 'tlssession_mainloop' | +--> 'bufNew': events 80-82 | |tlsproxy/buffer.c:78:11: | 78 | buffer_t *bufNew(ssize_t size, ssize_t hwm) | | ^ | | | | | (80) entry to 'bufNew' |...... | 81 | if (!b) | | ~ | | | | | (81) following 'false' branch (when 'b_6' is non-NULL)... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------+ | 84 || b->buf = calloc(1, size); | || ~ | || | | |+---------------->(82) ...to here | <------+ | 'tlssession_mainloop': events 83-84 | |tlsproxy/crypto-gnutls.c:304:34: | 304 | buffer_t *cryptToPlain = bufNew(BUF_SIZE, BUF_HWM); | | ^ | | | | | (83) returning to 'tlssession_mainloop' from 'bufNew' | 305 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ~ | | | | | (84) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 85-86 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (85) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (86) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 87-91 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (87) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (88) following 'default:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 256 || default: | || ~ | || | | |+--->(89) ...to here |...... | 259 | switch (action) | | ~ | | | | | (90) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------------------------+ | 286 || case F_GETFD: | || ~ | || | | |+--------->(91) ...to here | <------+ | 'socksetnonblock': events 92-95 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (92) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (93) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 109 || return -1; | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ~ | || | | |+-------------->(94) ...to here | | (95) following 'false' branch (when 'nb_8(D) == 0')... ->-+ | | | | 'socksetnonblock': events 96-97 | | | | | |+-------------------------------------------------------------------------+ | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ^ | || | | |+-------------->(96) ...to here | | (97) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 98-102 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (98) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (99) following 'default:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 256 || default: | || ~ | || | | |+--->(100) ...to here |...... | 259 | switch (action) | | ~ | | | | | (101) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------------------------------------------------------------------+ | 332 || case F_ADD_SEALS: | || ~ | || | | |+--------->(102) ...to here | <------+ | 'socksetnonblock': event 103 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (103) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': event 104 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ^ | | | | | (104) returning to 'tlssession_mainloop' from 'socksetnonblock' | 'tlssession_mainloop': events 105-109 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ^ | | | | | (105) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 312 || gnutls_transport_set_ptr(s->session, | || ~ | || | | |+------->(106) ...to here |...... | 317 | if (ret < 0) { | | ~ | | | | | (107) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 322 || if (socksetnonblock(cryptfd, 1) < 0) { | || ~ | || | | |+----------->(108) ...to here | | (109) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 110-111 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (110) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (111) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 112-116 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (112) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (113) following 'default:' branch... ->-+ | | | |...... | | | | |+------------------------------------------+ | 256 || default: | || ~ | || | | |+--->(114) ...to here |...... | 259 | switch (action) | | ~ | | | | | (115) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------------------------+ | 286 || case F_GETFD: | || ~ | || | | |+--------->(116) ...to here | <------+ | 'socksetnonblock': events 117-120 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (117) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (118) following 'false' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 109 || return -1; | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ~ | || | | |+-------------->(119) ...to here | | (120) following 'true' branch (when 'nb_8(D) != 0')... ->-+ | | | | 'socksetnonblock': events 121-122 | | | | | |+-------------------------------------------------------------------------+ | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ^ | || | | |+-------------->(121) ...to here | | (122) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 123-127 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (123) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (124) following 'default:' branch... ->-+ | | | |...... | | | | |+------------------------------------------+ | 256 || default: | || ~ | || | | |+--->(125) ...to here |...... | 259 | switch (action) | | ~ | | | | | (126) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------------------------------------------------------------------+ | 332 || case F_ADD_SEALS: | || ~ | || | | |+--------->(127) ...to here | <------+ | 'socksetnonblock': event 128 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (128) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': event 129 | | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ^ | | | | | (129) returning to 'tlssession_mainloop' from 'socksetnonblock' | 'tlssession_mainloop': events 130-132 | | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ^ | | | | | (130) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 327 || if (socksetnonblock(plainfd, 1) < 0) { | || ~ | || | | |+----------->(131) ...to here | | (132) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 133-134 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (133) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (134) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 135-139 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (135) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (136) following 'default:' branch... ->-+ | | | |...... | | | | |+------------------------------------------+ | 256 || default: | || ~ | || | | |+--->(137) ...to here |...... | 259 | switch (action) | | ~ | | | | | (138) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------------------------+ | 286 || case F_GETFD: | || ~ | || | | |+--------->(139) ...to here | <------+ | 'socksetnonblock': events 140-143 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (140) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (141) following 'false' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 109 || return -1; | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ~ | || | | |+-------------->(142) ...to here | | (143) following 'true' branch (when 'nb_8(D) != 0')... ->-+ | | | | 'socksetnonblock': events 144-145 | | | | | |+-------------------------------------------------------------------------+ | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ^ | || | | |+-------------->(144) ...to here | | (145) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 146-150 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (146) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (147) following 'default:' branch... ->-+ | | | |...... | | | | |+------------------------------------------+ | 256 || default: | || ~ | || | | |+--->(148) ...to here |...... | 259 | switch (action) | | ~ | | | | | (149) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------------------------------------------------------------------+ | 332 || case F_ADD_SEALS: | || ~ | || | | |+--------->(150) ...to here | <------+ | 'socksetnonblock': event 151 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (151) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': event 152 | | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ^ | | | | | (152) returning to 'tlssession_mainloop' from 'socksetnonblock' | 'tlssession_mainloop': events 153-155 | | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ^ | | | | | (153) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 332 || maxfd = (plainfd > cryptfd) ? plainfd + 1 : cryptfd + 1; | || ~ | || | | |+------------------------------------------------->(154) ...to here | 333 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ~ | | | | | (155) following 'true' branch... ->-+ | | | | 'tlssession_mainloop': event 156 | | | | | |+----------------------------------------------------------------------------+ | 334 || while ((!plainEOF || !cryptEOF) && !quit(s)) { | || ^ | || | | |+------------------------------------------->(156) inlined call to 'quit' from 'tlssession_mainloop' | +--> 'quit': event 157 | | 72 | return s->quitfn(s->opaque); | | ^ | | | | | (157) ...to here | <------+ | 'tlssession_mainloop': event 158 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ^ | | | | | (158) following 'true' branch... ->-+ | | | | 'tlssession_mainloop': event 159 | |lto1: | (159): ...to here | 'tlssession_mainloop': event 160 | | 340 | FD_ZERO(&readfds); | | ^ | | | | | (160) following 'true' branch (when '__i_95 != 16')... ->-+ | | | | 'tlssession_mainloop': events 161-162 | | | | | |+--------------------------------------------------------------------------+ | 340 || FD_ZERO(&readfds); | || ^ | || | | |+--------------->(161) ...to here | | (162) following 'false' branch (when '__i_95 == 16')... ->-+ | | | | 'tlssession_mainloop': event 163 | |lto1: | (163): ...to here | 'tlssession_mainloop': event 164 | | 341 | FD_ZERO(&writefds); | | ^ | | | | | (164) following 'true' branch (when '__i_96 != 16')... ->-+ | | | | 'tlssession_mainloop': events 165-169 | | | | | |+--------------------------------------------------------------------------+ | 341 || FD_ZERO(&writefds); | || ^ | || | | |+--------------->(165) ...to here | | (166) following 'false' branch (when '__i_96 == 16')... ->-+ | | | | | | | |+---------------------------------------------------------------------------+ | 342 || | 343 || size_t buffered = gnutls_record_check_pending(s->session); | || ~ | || | | |+--------------------------------->(167) ...to here |...... | 347 | if (plainEOF) { | | ~ | | | | | (168) following 'false' branch (when 'plainEOF_88 == 0')... ->-+ | | | |...... | | | | |+----------------------------------------------------------------------------------+ | 355 || if (!bufIsEmpty(cryptToPlain)) | || ~ | || | | |+---------------------------->(169) ...to here | 'tlssession_mainloop': events 170-172 | | 355 | if (!bufIsEmpty(cryptToPlain)) | | ^ | | | | | (170) following 'false' branch... ->-+ | | | | | | | |+----------------------------------------------------------------+ | 356 || FD_SET(plainfd, &writefds); | 357 || if (!bufIsOverHWM(plainToCrypt)) | || ~ | || | | |+---------------------------->(171) ...to here | | (172) calling 'bufIsOverHWM' from 'tlssession_mainloop' | +--> 'bufIsOverHWM': events 173-174 | |tlsproxy/buffer.c:195:5: | 195 | int bufIsOverHWM(buffer_t *b) | | ^ | | | | | (173) entry to 'bufIsOverHWM' | 196 | { | 197 | return bufGetCount(b) > b->hwm; | | ~ | | | | | (174) inlined call to 'bufGetCount' from 'bufIsOverHWM' | +--> 'bufGetCount': event 175 | | 207 | if (b->empty) | | ^ | | | | | (175) dereference of NULL 'b_4(D)' | tlsproxy/buffer.c: In function 'bufIsEmpty': tlsproxy/buffer.c:187:17: warning: dereference of NULL 'b_2(D)' [CWE-476] [-Wanalyzer-null-dereference] 187 | return b->empty; | ^ 'runlistener': events 1-2 | |tlsproxy/tlsproxy.c:214:12: | 214 | static int runlistener(void) | | ^ | | | | | (1) entry to 'runlistener' |...... | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ~ | | | | | (2) calling 'bindtoaddress' from 'runlistener' | +--> 'bindtoaddress': events 3-12 | | 57 | static int bindtoaddress(char *addrport) | | ^ | | | | | (3) entry to 'bindtoaddress' |...... | 80 | if (s != 0) { | | ~ | | | | | (4) following 'false' branch... ->-+ | | | |...... | | | | |+----------------------------------------------+ | 88 || for (rp = result; rp != NULL; rp = rp->ai_next) { | || ~ ~ | || | | | || | (6) following 'true' branch (when 'rp_14' is non-NULL)... ->-+ | |+--------------->(5) ...to here | | | | | | | | |+------------------------------------------------------------------------------------------+ | 89 || fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | || ~ | || | | |+-------------------->(7) ...to here | | (8) when 'socket' succeeds | 90 | | 91 | if (fd >= 0) { | | ~ | | | | | (9) following 'true' branch (when 'fd_38 >= 0')... ->-+ | | | | | | | |+-------------------------------------------------------------------------+ | 92 || int one = 1; | || ~ | || | | |+--------------------------->(10) ...to here | 93 | if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, | | ~ | | | | | (11) following 'false' branch... ->-+ | | | |...... | | | | |+---------------------------------------------------------------+ | 98 || if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | || ~ | || | | |+-------------------------------------->(12) ...to here | 'bindtoaddress': event 13 | | 98 | if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ^ | | | | | (13) following 'true' branch... ->-+ | | | | 'bindtoaddress': event 14 | |lto1: | (14): ...to here | 'bindtoaddress': events 15-17 | | 104 | if (!rp) { | | ^ | | | | | (15) following 'false' branch (when 'rp_28' is non-NULL)... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------+ | 110 || freeaddrinfo(result); /* No longer needed */ | || ~ | || | | |+------->(16) ...to here | 111 | | 112 | if (listen(fd, 5) < 0) { | | ~ | | | | | (17) when 'listen' succeeds | 'bindtoaddress': event 18 | | 112 | if (listen(fd, 5) < 0) { | | ^ | | | | | (18) following 'false' branch... ->-+ | | | | 'bindtoaddress': event 19 | | | | | |+-----------------------------------------------+ | 83 || return -1; | || ^ | || | | |+---------------------->(19) ...to here | <------+ | 'runlistener': event 20 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ^ | | | | | (20) returning to 'runlistener' from 'bindtoaddress' | 'runlistener': event 21 | | 217 | if ((listenfd = bindtoaddress(listenaddr)) < 0) { | | ^ | | | | | (21) following 'false' branch... ->-+ | | | | 'runlistener': event 22 | |lto1: | (22): ...to here | 'runlistener': event 23 | | 228 | while (!rxsigquit) { | | ^ | | | | | (23) following 'true' branch... ->-+ | | | | 'runlistener': event 24 | |lto1: | (24): ...to here | 'runlistener': events 25-26 | | 237 | if (rxsigquit) | | ^ | | | | | (25) following 'false' branch... ->-+ | | | | | | | |+-------------------------------------------------------+ | 238 || break; | 239 || if (nofork < 2) { | || ~ | || | | |+-------------------------->(26) ...to here | 'runlistener': events 27-29 | | 239 | if (nofork < 2) { | | ^ | | | | | (27) following 'true' branch... ->-+ | | | | | | | |+------------------------------------------------------+ | 240 || int ret = runproxy(fd); | || ~ | || | | |+--------------------------------->(28) ...to here | | (29) calling 'runproxy' from 'runlistener' | +--> 'runproxy': events 30-31 | | 178 | static int runproxy(int acceptfd) | | ^ | | | | | (30) entry to 'runproxy' |...... | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ~ | | | | | (31) calling 'connecttoaddress' from 'runproxy' | +--> 'connecttoaddress': events 32-39 | | 120 | static int connecttoaddress(char *addrport) | | ^ | | | | | (32) entry to 'connecttoaddress' |...... | 146 | if (s != 0) { | | ~ | | | | | (33) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 153 || for (rp = result; rp != NULL; rp = rp->ai_next) { | || ~ ~ | || | | | || | (35) following 'true' branch (when 'rp_14' is non-NULL)... ->-+ | |+--------------->(34) ...to here | | | | | | | | |+-------------------------------------------------------------------------------------------+ | 154 || fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); | || ~ | || | | |+-------------------->(36) ...to here | | (37) when 'socket' succeeds | 155 | if (fd >= 0) { | | ~ | | | | | (38) following 'true' branch (when 'fd_42 >= 0')... ->-+ | | | | | | | |+--------------------------------------------------------------------------+ | 156 || if (connect(fd, rp->ai_addr, rp->ai_addrlen) == 0) | || ~ | || | | |+----------------------------------------->(39) ...to here | 'connecttoaddress': events 40-43 | | 156 | if (connect(fd, rp->ai_addr, rp->ai_addrlen) == 0) | | ^ | | | | | (40) following 'true' branch... ->-+ | | | |...... | | | | |+--------------------------------------------------------------+ | 162 || if (!rp) { | || ~ | || | | |+---------->(41) ...to here | | (42) following 'false' branch (when 'rp_28' is non-NULL)... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------+ | 168 || freeaddrinfo(result); /* No longer needed */ | || ~ | || | | |+------->(43) ...to here | <------+ | 'runproxy': event 44 | | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ^ | | | | | (44) returning to 'runproxy' from 'connecttoaddress' | 'runproxy': events 45-47 | | 181 | if ((connectfd = connecttoaddress(connectaddr)) < 0) { | | ^ | | | | | (45) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 187 || tlssession_t *session = tlssession_new(server, keyfile, certfile, | || ~ | || | | |+------------------------------->(46) ...to here | | (47) calling 'tlssession_new' from 'runproxy' | +--> 'tlssession_new': events 48-64 | |tlsproxy/crypto-gnutls.c:163:15: | 163 | tlssession_t *tlssession_new(int isserver, char *keyfile, char *certfile, | | ^ | | | | | (48) entry to 'tlssession_new' |...... | 172 | if (!s) | | ~ | | | | | (49) following 'false' branch (when 's_41' is non-NULL)... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------+ | 175 || if (quitfn) | || ~ | || | | |+---------->(50) ...to here | | (51) following 'true' branch (when 'quitfn_42(D)' is non-NULL)... ->-+ | | | | | | | |+--------------------------------------------------------------------------------+ | 176 || s->quitfn = quitfn; | || ~ | || | | |+------------------------->(52) ...to here |...... | 180 | if (erroutfn) | | ~ | | | | | (53) following 'false' branch (when 'erroutfn_45(D)' is NULL)... ->-+ | | | |...... | | | | |+-------------------------------------------------------------------------------+ | 183 || s->erroutfn = stderrout; | || ~ | || | | |+--------------------------->(54) ...to here |...... | 190 | if (gnutls_certificate_allocate_credentials(&s->creds) < 0) { | | ~ | | | | | (55) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 195 || if (cacertfile != NULL) { | || ~ | || | | |+---------->(56) ...to here |...... | 232 | if (ret < 0) { | | ~ | | | | | (57) following 'false' branch (when 'ret_26 >= 0')... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------+ | 238 || gnutls_session_set_ptr(s->session, (void *)s); | || ~ | || | | |+------->(58) ...to here |...... | 251 | if (ret < 0) { | | ~ | | | | | (59) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 257 || ret = gnutls_credentials_set(s->session, GNUTLS_CRD_CERTIFICATE, | || ~ | || | | |+------------->(60) ...to here | 258 | s->creds); | 259 | if (ret < 0) { | | ~ | | | | | (61) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 265 || if (isserver) { | || ~ | || | | |+---------->(62) ...to here | | (63) following 'true' branch (when 'isserver_69(D) != 0')... ->-+ | | | | | | | |+---------------------------------------------------------------------------+ | 266 || /* requests but does not check a client certificate */ | 267 || gnutls_certificate_server_set_request(s->session, | || ~ | || | | |+--------------->(64) ...to here | <------+ | 'runproxy': events 65-67 | |tlsproxy/tlsproxy.c:187:33: | 187 | tlssession_t *session = tlssession_new(server, keyfile, certfile, | | ^ | | | | | (65) returning to 'runproxy' from 'tlssession_new' |...... | 190 | if (!session) { | | ~ | | | | | (66) following 'false' branch... ->-+ | | | |...... | | | | |+-----------------------------------------------+ | 198 || if (server) | || ~ | || | | |+----------->(67) ...to here | 'runproxy': events 68-70 | | 198 | if (server) | | ^ | | | | | (68) following 'true' branch... ->-+ | | | | | | | |+----------------------------------------------+ | 199 || ret = tlssession_mainloop(acceptfd, connectfd, session); | || ~ | || | | |+--------------------->(69) ...to here | | (70) calling 'tlssession_mainloop' from 'runproxy' | +--> 'tlssession_mainloop': events 71-72 | |tlsproxy/crypto-gnutls.c:293:5: | 293 | int tlssession_mainloop(int cryptfd, int plainfd, tlssession_t *s) | | ^ | | | | | (71) entry to 'tlssession_mainloop' |...... | 303 | buffer_t *plainToCrypt = bufNew(BUF_SIZE, BUF_HWM); | | ~ | | | | | (72) calling 'bufNew' from 'tlssession_mainloop' | +--> 'bufNew': events 73-74 | |tlsproxy/buffer.c:78:11: | 78 | buffer_t *bufNew(ssize_t size, ssize_t hwm) | | ^ | | | | | (73) entry to 'bufNew' |...... | 81 | if (!b) | | ~ | | | | | (74) following 'true' branch (when 'b_6' is NULL)... ->-+ | | | | 'bufNew': event 75 | |lto1: | (75): ...to here | <------+ | 'tlssession_mainloop': events 76-77 | |tlsproxy/crypto-gnutls.c:303:34: | 303 | buffer_t *plainToCrypt = bufNew(BUF_SIZE, BUF_HWM); | | ^ | | | | | (76) returning to 'tlssession_mainloop' from 'bufNew' | 304 | buffer_t *cryptToPlain = bufNew(BUF_SIZE, BUF_HWM); | | ~ | | | | | (77) calling 'bufNew' from 'tlssession_mainloop' | +--> 'bufNew': events 78-81 | |tlsproxy/buffer.c:78:11: | 78 | buffer_t *bufNew(ssize_t size, ssize_t hwm) | | ^ | | | | | (78) entry to 'bufNew' | 79 | { | 80 | buffer_t *b = calloc(1, sizeof(buffer_t)); | | ~ | | | | | (79) allocated here | 81 | if (!b) | | ~ | | | | | (80) assuming 'b_6' is NULL | | (81) following 'true' branch (when 'b_6' is NULL)... ->-+ | | | | 'bufNew': event 82 | |lto1: | (82): ...to here | <------+ | 'tlssession_mainloop': events 83-84 | |tlsproxy/crypto-gnutls.c:304:34: | 304 | buffer_t *cryptToPlain = bufNew(BUF_SIZE, BUF_HWM); | | ^ | | | | | (83) returning to 'tlssession_mainloop' from 'bufNew' | 305 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ~ | | | | | (84) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 85-86 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (85) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (86) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 87-91 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (87) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (88) following 'default:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 256 || default: | || ~ | || | | |+--->(89) ...to here |...... | 259 | switch (action) | | ~ | | | | | (90) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... ->-+ | | | |...... | | | | |+--------------------------------------------------------------------------------------------------------------+ | 286 || case F_GETFD: | || ~ | || | | |+--------->(91) ...to here | <------+ | 'socksetnonblock': events 92-95 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (92) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (93) following 'false' branch... ->-+ | | | | | | | |+-----------------------------------------------+ | 109 || return -1; | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ~ | || | | |+-------------->(94) ...to here | | (95) following 'false' branch (when 'nb_8(D) == 0')... ->-+ | | | | 'socksetnonblock': events 96-97 | | | | | |+-------------------------------------------------------------------------+ | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ^ | || | | |+-------------->(96) ...to here | | (97) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 98-102 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (98) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (99) following 'default:' branch... ->-+ | | | |...... | | | | |+-----------------------------------------+ | 256 || default: | || ~ | || | | |+--->(100) ...to here |...... | 259 | switch (action) | | ~ | | | | | (101) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------------------------------------------------------------------+ | 332 || case F_ADD_SEALS: | || ~ | || | | |+--------->(102) ...to here | <------+ | 'socksetnonblock': event 103 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (103) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': event 104 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ^ | | | | | (104) returning to 'tlssession_mainloop' from 'socksetnonblock' | 'tlssession_mainloop': events 105-109 | | 306 | if (socksetnonblock(cryptfd, 0) < 0) { | | ^ | | | | | (105) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 312 || gnutls_transport_set_ptr(s->session, | || ~ | || | | |+------->(106) ...to here |...... | 317 | if (ret < 0) { | | ~ | | | | | (107) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 322 || if (socksetnonblock(cryptfd, 1) < 0) { | || ~ | || | | |+----------->(108) ...to here | | (109) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 110-111 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (110) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (111) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 112-116 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (112) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (113) following 'default:' branch... ->-+ | | | |...... | | | | |+------------------------------------------+ | 256 || default: | || ~ | || | | |+--->(114) ...to here |...... | 259 | switch (action) | | ~ | | | | | (115) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------------------------+ | 286 || case F_GETFD: | || ~ | || | | |+--------->(116) ...to here | <------+ | 'socksetnonblock': events 117-120 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (117) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (118) following 'false' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 109 || return -1; | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ~ | || | | |+-------------->(119) ...to here | | (120) following 'true' branch (when 'nb_8(D) != 0')... ->-+ | | | | 'socksetnonblock': events 121-122 | | | | | |+-------------------------------------------------------------------------+ | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ^ | || | | |+-------------->(121) ...to here | | (122) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 123-127 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (123) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (124) following 'default:' branch... ->-+ | | | |...... | | | | |+------------------------------------------+ | 256 || default: | || ~ | || | | |+--->(125) ...to here |...... | 259 | switch (action) | | ~ | | | | | (126) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------------------------------------------------------------------+ | 332 || case F_ADD_SEALS: | || ~ | || | | |+--------->(127) ...to here | <------+ | 'socksetnonblock': event 128 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (128) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': event 129 | | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ^ | | | | | (129) returning to 'tlssession_mainloop' from 'socksetnonblock' | 'tlssession_mainloop': events 130-132 | | 322 | if (socksetnonblock(cryptfd, 1) < 0) { | | ^ | | | | | (130) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 327 || if (socksetnonblock(plainfd, 1) < 0) { | || ~ | || | | |+----------->(131) ...to here | | (132) calling 'socksetnonblock' from 'tlssession_mainloop' | +--> 'socksetnonblock': events 133-134 | | 105 | static int socksetnonblock(int fd, int nb) | | ^ | | | | | (133) entry to 'socksetnonblock' | 106 | { | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ~ | | | | | (134) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 135-139 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (135) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (136) following 'default:' branch... ->-+ | | | |...... | | | | |+------------------------------------------+ | 256 || default: | || ~ | || | | |+--->(137) ...to here |...... | 259 | switch (action) | | ~ | | | | | (138) following 'case 1:, case 3:, case 9:, case 11:, case 1025:, case 1032:, case 1034:' branch... ->-+ | | | |...... | | | | |+---------------------------------------------------------------------------------------------------------------+ | 286 || case F_GETFD: | || ~ | || | | |+--------->(139) ...to here | <------+ | 'socksetnonblock': events 140-143 | |tlsproxy/crypto-gnutls.c:107:18: | 107 | int sf = fcntl(fd, F_GETFL, 0); | | ^ | | | | | (140) returning to 'socksetnonblock' from 'rpl_fcntl' | 108 | if (sf == -1) | | ~ | | | | | (141) following 'false' branch... ->-+ | | | | | | | |+------------------------------------------------+ | 109 || return -1; | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ~ | || | | |+-------------->(142) ...to here | | (143) following 'true' branch (when 'nb_8(D) != 0')... ->-+ | | | | 'socksetnonblock': events 144-145 | | | | | |+-------------------------------------------------------------------------+ | 110 || return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | || ^ | || | | |+-------------->(144) ...to here | | (145) calling 'rpl_fcntl' from 'socksetnonblock' | +--> 'rpl_fcntl': events 146-150 | |../../gl/fcntl.c:202:1: | 202 | fcntl (int fd, int action, /* arg */...) | | ^ | | | | | (146) entry to 'rpl_fcntl' |...... | 211 | switch (action) | | ~ | | | | | (147) following 'default:' branch... ->-+ | | | |...... | | | | |+------------------------------------------+ | 256 || default: | || ~ | || | | |+--->(148) ...to here |...... | 259 | switch (action) | | ~ | | | | | (149) following 'case 2:, case 4:, case 8:, case 10:, case 1024:, case 1026:, case 1030 ... 1031:, case 1033:' branch... ->-+ | | | |...... | | | | |+------------------------------------------------------------------------------------------------------------------------------------+ | 332 || case F_ADD_SEALS: | || ~ | || | | |+--------->(150) ...to here | <------+ | 'socksetnonblock': event 151 | |tlsproxy/crypto-gnutls.c:110:16: | 110 | return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK)); | | ^ | | | | | (151) returning to 'socksetnonblock' from 'rpl_fcntl' | <------+ | 'tlssession_mainloop': event 152 | | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ^ | | | | | (152) returning to 'tlssession_mainloop' from 'socksetnonblock' | 'tlssession_mainloop': events 153-155 | | 327 | if (socksetnonblock(plainfd, 1) < 0) { | | ^ | | | | | (153) following 'false' branch... ->-+ | | | |...... | | | | |+------------------------------------------------+ | 332 || maxfd = (plainfd > cryptfd) ? plainfd + 1 : cryptfd + 1; | || ~ | || | | |+------------------------------------------------->(154) ...to here | 333 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ~ | | | | | (155) following 'true' branch... ->-+ | | | | 'tlssession_mainloop': event 156 | | | | | |+----------------------------------------------------------------------------+ | 334 || while ((!plainEOF || !cryptEOF) && !quit(s)) { | || ^ | || | | |+------------------------------------------->(156) inlined call to 'quit' from 'tlssession_mainloop' | +--> 'quit': event 157 | | 72 | return s->quitfn(s->opaque); | | ^ | | | | | (157) ...to here | <------+ | 'tlssession_mainloop': event 158 | | 334 | while ((!plainEOF || !cryptEOF) && !quit(s)) { | | ^ | | | | | (158) following 'true' branch... ->-+ | | | | 'tlssession_mainloop': event 159 | |lto1: | (159): ...to here | 'tlssession_mainloop': event 160 | | 340 | FD_ZERO(&readfds); | | ^ | | | | | (160) following 'true' branch (when '__i_95 != 16')... ->-+ | | | | 'tlssession_mainloop': events 161-162 | | | | | |+--------------------------------------------------------------------------+ | 340 || FD_ZERO(&readfds); | || ^ | || | | |+--------------->(161) ...to here | 341 | FD_ZERO(&writefds); | | ~ | | | | | (162) following 'true' branch (when '__i_96 != 16')... ->-+ | | | | 'tlssession_mainloop': events 163-166 | | | | | |+--------------------------------------------------------------------------+ | 341 || FD_ZERO(&writefds); | || ^ | || | | |+--------------->(163) ...to here |...... | 347 | if (plainEOF) { | | ~ | | | | | (164) following 'false' branch (when 'plainEOF_88 == 0')... ->-+ | | | |...... | | | | |+----------------------------------------------------------------------------------+ | 355 || if (!bufIsEmpty(cryptToPlain)) | || ~ | || | | |+---------------------------->(165) ...to here | | (166) calling 'bufIsEmpty' from 'tlssession_mainloop' | +--> 'bufIsEmpty': events 167-168 | |tlsproxy/buffer.c:185:5: | 185 | int bufIsEmpty(buffer_t *b) | | ^ | | | | | (167) entry to 'bufIsEmpty' | 186 | { | 187 | return b->empty; | | ~ | | | | | (168) dereference of NULL 'b_2(D)' | make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/doc/examples' Making all in scripts make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/doc/scripts' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/doc/scripts' Making all in credentials make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/doc/credentials' Making all in srp make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/doc/credentials/srp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/doc/credentials/srp' Making all in x509 make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/doc/credentials/x509' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/doc/credentials/x509' make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/doc/credentials' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/doc/credentials' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/doc/credentials' Making all in latex make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/doc/latex' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/doc/latex' make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/doc' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/doc' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/doc' make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.11' ==> Starting check()... Making check in gl make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.11/gl' make check-recursive make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/gl' make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/gl' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/gl' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/gl' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/gl' Making check in lib make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib' make check-recursive make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib' Making check in includes make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/includes' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/includes' Making check in x509 make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/x509' make check-am make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/x509' make[4]: Nothing to be done for 'check-am'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/x509' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/x509' Making check in auth make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/auth' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/auth' Making check in ext make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/ext' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/ext' Making check in algorithms make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/algorithms' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/algorithms' Making check in extras make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/extras' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/extras' Making check in accelerated make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/accelerated' make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/accelerated' make[4]: Nothing to be done for 'check-am'. make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/accelerated' make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/accelerated' Making check in pkcs11 make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/pkcs11' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/pkcs11' Making check in nettle make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib/nettle' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib/nettle' make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/lib' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib' make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/lib' Making check in extra make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.11/extra' Making check in includes make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/extra/includes' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/extra/includes' make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/extra' make[2]: Nothing to be done for 'check-am'. make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/extra' make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/extra' Making check in po make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.11/po' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/po' Making check in src/gl make[1]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl' make check-recursive make[2]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl' Making check in . make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl' Making check in tests make[3]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' make check-recursive make[4]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' Making check in . make[5]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' ## ---------------------------------------------------------------------- ## ## ---------------------------- Gnulib tests ---------------------------- ## ## Please report test failures in this directory to . ## ## ---------------------------------------------------------------------- ## make test-accept test-alignasof test-alloca-opt test-arpa_inet-h test-array_list test-assert test-binary-io test-bind test-bool test-byteswap test-c-ctype test-c-strcasecmp test-c-strncasecmp test-calloc-gnu test-calloc-posix test-canonicalize-lgpl test-cloexec test-close test-connect test-ctype test-dup2 test-endian test-environ test-errno-h test-error test-explicit_bzero test-fcntl-h test-fcntl test-fdopen test-fgetc test-float-h test-fopen-gnu test-fopen test-fpending test-fputc test-fread test-free test-fseek test-fseeko test-fseeko3 test-fseeko4 test-fstat test-ftell test-ftell3 test-ftello test-ftello3 test-ftello4 test-ftruncate test-func test-fwrite test-getaddrinfo test-getcwd-lgpl test-getdelim test-getdtablesize test-getline test-getpeername test-getprogname test-gettext-h test-gettimeofday test-scratch-buffer test-htonl test-ignore-value test-inet_ntop test-inet_pton test-intprops test-inttypes-h test-ioctl test-isblank test-isnand-nolibm test-isnanf-nolibm test-isnanl-nolibm test-langinfo-h test-largefile test-limits-h test-linked_list test-linkedhash_list test-listen test-locale-h test-localename test-rwlock1 test-lock test-lseek test-lstat test-malloc-gnu test-malloc-posix test-malloca test-math-h test-memchr test-memset_explicit test-nanosleep test-netdb-h test-netinet_in-h test-once1 test-once2 test-open test-parse-datetime test-pathmax test-perror test-perror2 test-pipe test-pselect test-pthread-cond test-pthread test-pthread-mutex test-pthread-mutex-type test-pthread-once1 test-pthread-once2 test-pthread-rwlock test-pthread-thread test-pthread_sigmask1 test-pthread_sigmask2 test-putenv test-raise test-random test-random-mt test-random_r test-rawmemchr test-read-file test-readlink test-realloc-posix test-reallocarray test-recv test-recvfrom test-sched-h test-select test-select-fd test-select-stdin test-send test-sendto test-servent test-setenv test-setlocale_null test-setlocale_null-mt-one test-setlocale_null-mt-all test-setlocale_null-unlocked test-setlocale1 test-setlocale2 test-setlocale-w32 test-setsockopt test-shutdown test-signal-h test-signbit test-sigprocmask test-sleep test-snprintf test-sockets test-stat test-stat-time test-stdckdint-h test-stddef-h test-stdint-h test-stdio-h test-stdlib-h test-str_endswith test-str_startswith test-strerror test-strerror_r test-string-h test-strings-h test-strndup test-strnlen test-strverscmp test-symlink test-sys_ioctl-h test-sys_select-h test-sys_socket-h test-sys_stat-h test-sys_time-h test-sys_types-h test-sys_uio-h test-thread_self test-thread_create test-time-h test-time test-gmtime_r test-gmtime_r-mt test-localtime_r test-localtime_r-mt test-timespec test-tls test-unistd-h test-unsetenv test-usleep test-vasnprintf test-vasprintf test-verify test-vsnprintf test-wchar-h test-windows-mutex-type test-windows-recmutex-type test-windows-timedmutex-type test-windows-timedrecmutex-type test-xalloc-die libtests.a make[6]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' CC test-accept.o CC gl_array_list.o CC binary-io.o CC concat-filename.o CC dtotimespec.o CC endian.o CC ioctl.o CC localename.o CC localename-unsafe.o CC localename-table.o CC math.o CC nanosleep.o CC pthread-rwlock.o CC same-inode.o CC setlocale_null.o CC setlocale_null-unlocked.o CC str_endswith.o CC str_startswith.o CC time.o CC timespec-add.o CC timespec-sub.o CC vma-iter.o CC xconcat-filename.o CC xgetcwd.o CC strerror_r.o CC test-alignasof.o CC test-alloca-opt.o CC test-arpa_inet-h.o CC test-array_list.o CC test-assert.o CC test-binary-io.o CC test-bind.o CC test-bool.o CC test-byteswap.o CC test-c-ctype.o CC test-c-strcasecmp.o CC test-c-strncasecmp.o CC test-calloc-gnu.o CC test-calloc-posix.o CC test-canonicalize-lgpl.o CC test-cloexec.o CC test-close.o CC test-connect.o CC test-ctype.o CC test-dup2.o CC test-endian.o CC test-environ.o CC test-errno-h.o CC test-error.o CC test-explicit_bzero.o CC test-fcntl-h.o CC test-fcntl.o CC test-fdopen.o CC test-fgetc.o CC test-float-h.o CC test-fopen-gnu.o CC test-fopen.o CC test-fpending.o CC test-fputc.o CC test-fread.o CC test-free.o CC test-fseek.o CC test-fseeko.o CC test-fseeko3.o CC test-fseeko4.o CC test-fstat.o CC test-ftell.o CC test-ftell3.o CC test-ftello.o CC test-ftello3.o CC test-ftello4.o CC test-ftruncate.o CC test-func.o CC test-fwrite.o CC test-getaddrinfo.o CC test-getcwd-lgpl.o CC test-getdelim.o CC test-getdtablesize.o CC test-getline.o CC test-getpeername.o CC test-getprogname.o CC test-gettext-h.o CC test-gettimeofday.o CC test-scratch-buffer.o CC test-htonl.o CC test-ignore-value.o CC test-inet_ntop.o CC test-inet_pton.o CC test-intprops.o CC test-inttypes-h.o CC test-ioctl.o CC test-isblank.o CC test-isnand-nolibm.o CC test-isnanf-nolibm.o CC test-isnanl-nolibm.o CC test-langinfo-h.o CC test-largefile.o CC test-limits-h.o CC test-linked_list.o CC test-linkedhash_list.o CC test-listen.o CC test-locale-h.o CC test-localename.o CC test-rwlock1.o CC test-lock.o CC test-lseek.o CC test-lstat.o CC test-malloc-gnu.o CC test-malloc-posix.o CC test-malloca.o CC test-math-h.o CC test-memchr.o CC test-nanosleep.o CC test-memset_explicit.o CC test-netdb-h.o CC test-netinet_in-h.o CC test-once.o CC test-open.o CC test-parse-datetime.o CC test-pathmax.o CC test-perror.o CC test-perror2.o CC test-pipe.o CC test-pselect.o CC test-pthread-cond.o CC test-pthread.o CC test-pthread-mutex.o CC test-pthread-mutex-type.o CC test-pthread-once1.o CC test-pthread-once2.o CC test-pthread-rwlock.o CC test-pthread-thread.o CC test-pthread_sigmask1.o CC test-pthread_sigmask2.o CC test-putenv.o CC test-raise.o CC test-random.o CC test-random-mt.o CC test-random_r.o CC test-rawmemchr.o CC test-read-file.o CC test-readlink.o CC test-realloc-posix.o CC test-reallocarray.o CC test-recv.o CC test-recvfrom.o CC test-sched-h.o CC test-select.o CC test-select-fd.o CC test-select-stdin.o CC test-send.o CC test-sendto.o CC test-servent.o CC test-setenv.o CC test-setlocale_null.o CC test-setlocale_null-mt-one.o CC test-setlocale_null-mt-all.o CC test-setlocale_null-unlocked.o CC test-setlocale1.o CC test-setlocale2.o CC test-setlocale-w32.o CC test-setsockopt.o CC test-shutdown.o CC test-signal-h.o CC test-signbit.o CC test-sigprocmask.o CC test-sleep.o CC test-snprintf.o CC test-sockets.o CC test-stat.o CC test-stat-time.o CC test-stddef-h.o CC test-stdckdint-h.o CC test-stdint-h.o CC test-stdio-h.o CC test-stdlib-h.o CC test-str_endswith.o CC test-str_startswith.o CC test-strerror.o CC test-strerror_r.o CC test-string-h.o CC test-strings-h.o CC test-strndup.o CC test-strnlen.o CC test-strverscmp.o CC test-symlink.o CC test-sys_ioctl-h.o CC test-sys_select-h.o CC test-sys_socket-h.o CC test-sys_stat-h.o CC test-sys_time-h.o CC test-sys_types-h.o CC test-sys_uio-h.o CC test-thread_self.o CC test-thread_create.o CC test-time-h.o CC test-time.o CC test-gmtime_r.o CC test-gmtime_r-mt.o CC test-localtime_r.o CC test-localtime_r-mt.o CC test-timespec.o CC test-tls.o CC test-unistd-h.o CC test-unsetenv.o CC test-vasnprintf.o CC test-usleep.o CC test-vasprintf.o CC test-verify.o CC test-vsnprintf.o CC test-wchar-h.o CC test-windows-mutex-type.o CC test-windows-recmutex-type.o CC test-windows-timedmutex-type.o CC test-windows-timedrecmutex-type.o CC test-xalloc-die.o CC glthread/thread.o AR libtests.a CCLD test-accept CCLD test-alignasof CCLD test-alloca-opt CCLD test-arpa_inet-h CCLD test-array_list CCLD test-assert CCLD test-binary-io CCLD test-bind CCLD test-bool CCLD test-byteswap CCLD test-c-ctype CCLD test-c-strcasecmp CCLD test-c-strncasecmp CCLD test-calloc-gnu CCLD test-calloc-posix CCLD test-canonicalize-lgpl CCLD test-cloexec CCLD test-close CCLD test-connect CCLD test-ctype CCLD test-dup2 CCLD test-endian CCLD test-environ CCLD test-errno-h CCLD test-error CCLD test-explicit_bzero CCLD test-fcntl-h CCLD test-fcntl CCLD test-fdopen CCLD test-fgetc CCLD test-float-h CCLD test-fopen-gnu CCLD test-fopen CCLD test-fpending CCLD test-fputc CCLD test-fread CCLD test-free CCLD test-fseek CCLD test-fseeko CCLD test-fseeko3 CCLD test-fseeko4 CCLD test-fstat CCLD test-ftell CCLD test-ftell3 CCLD test-ftello CCLD test-ftello3 CCLD test-ftello4 CCLD test-ftruncate CCLD test-func CCLD test-fwrite CCLD test-getaddrinfo CCLD test-getcwd-lgpl CCLD test-getdelim CCLD test-getdtablesize CCLD test-getline CCLD test-getpeername CCLD test-getprogname CCLD test-gettext-h CCLD test-gettimeofday CCLD test-scratch-buffer CCLD test-htonl CCLD test-ignore-value CCLD test-inet_ntop CCLD test-inet_pton CCLD test-intprops CCLD test-inttypes-h CCLD test-ioctl CCLD test-isblank CCLD test-isnand-nolibm CCLD test-isnanf-nolibm CCLD test-isnanl-nolibm CCLD test-langinfo-h CCLD test-largefile CCLD test-limits-h CCLD test-linked_list CCLD test-linkedhash_list CCLD test-listen CCLD test-locale-h CCLD test-localename CCLD test-rwlock1 CCLD test-lock CCLD test-lseek CCLD test-lstat CCLD test-malloc-gnu CCLD test-malloc-posix CCLD test-malloca CCLD test-math-h CCLD test-memchr CCLD test-memset_explicit CCLD test-nanosleep CCLD test-netdb-h CCLD test-netinet_in-h CCLD test-once1 CCLD test-once2 CCLD test-open CCLD test-parse-datetime CCLD test-pathmax CCLD test-perror CCLD test-perror2 CCLD test-pipe CCLD test-pselect CCLD test-pthread-cond CCLD test-pthread CCLD test-pthread-mutex CCLD test-pthread-mutex-type CCLD test-pthread-once1 CCLD test-pthread-once2 CCLD test-pthread-rwlock CCLD test-pthread-thread CCLD test-pthread_sigmask1 CCLD test-pthread_sigmask2 CCLD test-putenv CCLD test-raise CCLD test-random CCLD test-random-mt CCLD test-random_r CCLD test-rawmemchr CCLD test-read-file CCLD test-readlink CCLD test-realloc-posix CCLD test-reallocarray CCLD test-recv CCLD test-recvfrom CCLD test-sched-h CCLD test-select CCLD test-select-fd CCLD test-select-stdin CCLD test-send CCLD test-sendto CCLD test-servent CCLD test-setenv CCLD test-setlocale_null CCLD test-setlocale_null-mt-one CCLD test-setlocale_null-mt-all CCLD test-setlocale_null-unlocked CCLD test-setlocale1 CCLD test-setlocale2 CCLD test-setlocale-w32 CCLD test-setsockopt CCLD test-shutdown CCLD test-signal-h CCLD test-signbit CCLD test-sigprocmask CCLD test-sleep CCLD test-snprintf CCLD test-sockets CCLD test-stat CCLD test-stat-time CCLD test-stdckdint-h CCLD test-stddef-h CCLD test-stdint-h CCLD test-stdio-h CCLD test-stdlib-h CCLD test-str_endswith CCLD test-str_startswith CCLD test-strerror CCLD test-strerror_r CCLD test-string-h CCLD test-strings-h CCLD test-strndup CCLD test-strnlen CCLD test-strverscmp CCLD test-symlink CCLD test-sys_ioctl-h CCLD test-sys_select-h CCLD test-sys_socket-h CCLD test-sys_stat-h CCLD test-sys_time-h CCLD test-sys_types-h CCLD test-sys_uio-h CCLD test-thread_self CCLD test-thread_create CCLD test-time-h CCLD test-time CCLD test-gmtime_r CCLD test-gmtime_r-mt CCLD test-localtime_r CCLD test-localtime_r-mt CCLD test-timespec CCLD test-tls CCLD test-unistd-h CCLD test-unsetenv CCLD test-usleep CCLD test-vasnprintf CCLD test-vasprintf CCLD test-verify CCLD test-vsnprintf CCLD test-wchar-h CCLD test-windows-mutex-type CCLD test-windows-recmutex-type CCLD test-windows-timedmutex-type CCLD test-windows-timedrecmutex-type make[6]: 'libtests.a' is up to date. CCLD test-xalloc-die make[6]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' make check-TESTS make[6]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' make[7]: Entering directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' PASS: test-accept PASS: test-alignasof PASS: test-arpa_inet-h PASS: test-array_list PASS: test-assert PASS: test-binary-io.sh PASS: test-bool PASS: test-byteswap PASS: test-bind PASS: test-c-ctype PASS: test-calloc-gnu PASS: test-c-strcase.sh PASS: test-calloc-posix PASS: test-cloexec PASS: test-canonicalize-lgpl PASS: test-close PASS: test-connect PASS: test-ctype PASS: test-dup2 PASS: test-alloca-opt PASS: test-environ PASS: test-errno-h PASS: test-endian PASS: test-explicit_bzero PASS: test-fcntl-h PASS: test-fcntl PASS: test-fdopen PASS: test-fgetc PASS: test-float-h PASS: test-fopen-gnu PASS: test-fopen PASS: test-fpending.sh PASS: test-fputc PASS: test-fread PASS: test-fseek.sh PASS: test-fseek2.sh PASS: test-error.sh PASS: test-fseeko2.sh PASS: test-fseeko.sh PASS: test-fseeko3.sh PASS: test-fstat PASS: test-fseeko4.sh PASS: test-ftell.sh PASS: test-ftell3 PASS: test-ftell2.sh PASS: test-ftello.sh PASS: test-ftello2.sh PASS: test-ftello3 PASS: test-ftello4.sh PASS: test-ftruncate.sh PASS: test-func PASS: test-fwrite PASS: test-getcwd-lgpl PASS: test-getdelim PASS: test-getline PASS: test-getdtablesize PASS: test-getpeername PASS: test-getprogname PASS: test-gettimeofday PASS: test-gettext-h PASS: test-htonl PASS: test-scratch-buffer PASS: test-ignore-value PASS: test-inet_ntop PASS: test-inet_pton PASS: test-intprops PASS: test-free PASS: test-inttypes-h PASS: test-ioctl PASS: test-isblank PASS: test-isnand-nolibm PASS: test-isnanf-nolibm PASS: test-isnanl-nolibm PASS: test-langinfo-h PASS: test-largefile PASS: test-limits-h PASS: test-linked_list PASS: test-listen PASS: test-linkedhash_list PASS: test-locale-h PASS: test-localename PASS: test-getaddrinfo PASS: test-lstat PASS: test-lseek.sh PASS: test-malloc-gnu PASS: test-rwlock1 PASS: test-malloc-posix PASS: test-math-h PASS: test-malloca PASS: test-memset_explicit PASS: test-netdb-h PASS: test-netinet_in-h PASS: test-once1 PASS: test-once2 PASS: test-open PASS: test-parse-datetime PASS: test-pathmax PASS: test-perror.sh PASS: test-perror2 PASS: test-pipe PASS: test-pselect PASS: test-nanosleep PASS: test-pthread PASS: test-pthread-cond PASS: test-pthread-mutex-type PASS: test-pthread-once1 PASS: test-memchr PASS: test-pthread-mutex PASS: test-pthread-thread PASS: test-pthread-rwlock PASS: test-pthread_sigmask1 PASS: test-putenv PASS: test-raise PASS: test-random PASS: test-random-mt PASS: test-random_r PASS: test-rawmemchr PASS: test-pthread_sigmask2 PASS: test-read-file PASS: test-realloc-posix PASS: test-readlink PASS: test-reallocarray PASS: test-recv PASS: test-recvfrom PASS: test-sched-h PASS: test-select PASS: test-select-out.sh PASS: test-send PASS: test-sendto PASS: test-servent PASS: test-setenv PASS: test-setlocale_null SKIP: test-setlocale_null-mt-one SKIP: test-setlocale_null-mt-all PASS: test-setlocale_null-unlocked SKIP: test-setlocale1.sh PASS: test-setlocale2.sh SKIP: test-setlocale-w32 PASS: test-setsockopt PASS: test-shutdown PASS: test-signal-h PASS: test-signbit PASS: test-pthread-once2 PASS: test-select-in.sh PASS: test-snprintf PASS: test-sockets PASS: test-stat PASS: test-stat-time PASS: test-stdckdint-h PASS: test-stddef-h PASS: test-stdint-h PASS: test-stdio-h PASS: test-stdlib-h PASS: test-str_endswith PASS: test-str_startswith PASS: test-strerror PASS: test-strerror_r PASS: test-string-h PASS: test-strings-h PASS: test-strndup PASS: test-strnlen PASS: test-strverscmp PASS: test-symlink PASS: test-sys_ioctl-h PASS: test-sys_select-h PASS: test-sys_socket-h PASS: test-sys_stat-h PASS: test-sys_time-h PASS: test-sys_types-h PASS: test-sys_uio-h PASS: test-init.sh PASS: test-thread_self PASS: test-thread_create PASS: test-time-h PASS: test-time PASS: test-gmtime_r PASS: test-sigprocmask PASS: test-localtime_r PASS: test-sleep PASS: test-timespec PASS: test-gmtime_r-mt PASS: test-unistd-h PASS: test-unsetenv PASS: test-localtime_r-mt PASS: test-vasnprintf PASS: test-vasprintf PASS: test-verify PASS: test-usleep PASS: test-vsnprintf PASS: test-wchar-h SKIP: test-windows-mutex-type SKIP: test-windows-recmutex-type SKIP: test-windows-timedmutex-type SKIP: test-windows-timedrecmutex-type PASS: test-tls PASS: test-xalloc-die.sh PASS: test-verify.sh ../../../build-aux/test-driver: line 119: 65371 Alarm clock "$@" >> "$log_file" 2>&1 FAIL: test-lock ============================================================================ Testsuite summary for GnuTLS 3.8.11 ============================================================================ # TOTAL: 198 # PASS: 189 # SKIP: 8 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 ============================================================================ See src/gl/tests/test-suite.log for debugging. Some test(s) failed. Please report this to bugs@gnutls.org, together with the test-suite.log file (gzipped) and your system information. Thanks. ============================================================================ make[7]: *** [Makefile:6219: test-suite.log] Error 1 make[7]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' make[6]: *** [Makefile:6354: check-TESTS] Error 2 make[6]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' make[5]: *** [Makefile:7845: check-am] Error 2 make[5]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' make[4]: *** [Makefile:6112: check-recursive] Error 1 make[4]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' make[3]: *** [Makefile:7847: check] Error 2 make[3]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl/tests' make[2]: *** [Makefile:4657: check-recursive] Error 1 make[2]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl' make[1]: *** [Makefile:4809: check] Error 2 make[1]: Leaving directory '/build/gnutls/src/gnutls-3.8.11/src/gl' make: *** [Makefile:2935: check-recursive] Error 1 ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-0/build [?25h[?25h[?25hreceiving incremental file list gnutls-3.8.11-2-riscv64-build.log gnutls-3.8.11-2-riscv64-check.log gnutls-3.8.11-2-riscv64-prepare.log sent 81 bytes received 199,236 bytes 79,726.80 bytes/sec total size is 7,777,796 speedup is 39.02