- LCLint Version 3.0.0.19
+ Splint Version 3.0.0.20
Alpha Release
29 December 2001
LCLint Documentation
====================
-For documentation on LCLint, please see http://lclint.cs.virginia.edu.
+For documentation on LCLint, please see http://www.splint.org
WARNING: this is an Alpha release - new features and changes are not
-reflected in the documentation. The file BUFFERCHECKING contains
-preliminary documentation on the array bounds checking.
+reflected in the documentation.
Build Instructions
==================
-To build LCLint you need:
+To build Splint you need:
o a (hopefully ANSI-conforming) C compiler. On most modern Unix systems,
cc will work fine. For older or less standard systems, gcc is
o flex
o bison version 1.28 or later - bison 1.27 and 1.25 are believed to
- have bugs that cause problems with lclint's parsers.
+ have bugs that cause problems with Splint's parsers.
-If these are unavailable, you may be able to build lclint anyway using
+If these are unavailable, you may be able to build Splint anyway using
the derived grammar files. This is not recommended however.
-1. Download the LCLint source package (lclint-<version>.src.tgz).
+1. Download the Splint source package (splint-<version>.src.tgz).
- Copy this package to the directory where you want to build LCLint. When
- the tar file is extracted, it will create an lclint-<version> subdirectory.
+ Copy this package to the directory where you want to build Splint. When
+ the tar file is extracted, it will create an splint-<version> subdirectory.
2. Extract files from the tar archive:
- tar xzf lclint-<version>.src.tgz
+ tar xzf splint-<version>.src.tgz
3. Run: ./configure
This will create a Makefile with settings for your system. If you
- want to install LCLint or associated libraries different
+ want to install Splint or associated libraries different
directories, edit the Makefile.
4. Run: gmake
6. Set environment variables
- LARCH_PATH - path to search for lclint libraries and
+ LARCH_PATH - path to search for splint libraries and
initializations files. If you are using the standard directories, this
- should be .:<base-directory>/lclint-3.0.0.9/lib.
+ should be .:<base-directory>/splint-3.0.0.9/lib.
LCLIMPORTDIR - directory containing lcl imports files. If you are using
- the standard directories, this is <base-directory>/lclint-3.0.0.9/imports.
+ the standard directories, this is <base-directory>/splint-3.0.0.9/imports.
Put the commands to set these variables (the actual commands will depend
on the shell you are using) in one of your initialization dotfiles
(usually ~/.environment).
Set up your PATH to include the directory containing
- lclint-<version>/bin/lclint, or move the binary to a directory on
+ splint-<version>/bin/splint, or move the binary to a directory on
your command path.
7. Run: gmake test
Examine the test output. If there are errors, send a bug
- report to lclint-bug@cs.virginia.edu
+ report to splint-bug@cs.virginia.edu
-To subscribe to announcements of new lclint releases, send a message to
+To subscribe to announcements of new Splint releases, send a message to
majordomo@virginia.edu containing the body:
subscribe lclint-announce
-To participate in discussions related to lclint, send a message to
+To participate in discussions related to Splint, send a message to
majordomo@virginia.edu containing the body:
subscribe lclint-interest
/*@-constmacros@*/
-/* The directory where LCLint's library files live */
-#define DEFAULT_LARCHPATH ".:/usr/local/share/lclint/lib:/tmp/LCLintDev/lib:"
+/* The directory where Splint's library files live */
+#define DEFAULT_LARCHPATH ".:/usr/local/share/splint/lib:/af10/evans/LCLintDev/lib:"
-/* LCLint's imports directory */
-#define DEFAULT_LCLIMPORTDIR ".:/usr/local/share/lclint/imports:/tmp/LCLintDev/imports"
+/* Splint's imports directory */
+#define DEFAULT_LCLIMPORTDIR ".:/usr/local/share/splint/imports:/af10/evans/LCLintDev/imports"
/* gcc's private include directory */
#define GCC_INCLUDE_DIR "/usr/lib/gcc-lib/i386-linux/2.7.2.1/include"
#define GCC_INCLUDE_DIR2 "/usr/local/include"
/* String describing who compiled this binary and how */
-#define LCL_COMPILE "Compiled using gcc -g -O2 on Linux matthews.cs.Virginia.EDU 2.4.3-12 #1 Fri Jun 8 13:35:30 EDT 2001 i686 unknown by drl7x"
+#define LCL_COMPILE "Compiled using gcc -g -O2 on Linux paisley 2.4.9-12 #1 Tue Oct 30 18:33:49 EST 2001 i686 unknown by evans"
-/* LCLint's version number */
-#define LCL_PARSE_VERSION "LCLint 3.0.0.19"
+/* Splint's version number */
+#define LCL_PARSE_VERSION "Splint 3.0.0.20"
-/* LCLint's version number and release date */
-#define LCL_VERSION "LCLint 3.0.0.19 --- 5 October 2001"
+/* Splint's version number and release date */
+#define LCL_VERSION "Splint 3.0.0.20 --- 5 October 2001"
/* Define to disable support LCL files */
/* #undef NOLCL */
/*@-constmacros@*/
-/* The directory where LCLint's library files live */
+/* The directory where Splint's library files live */
#undef DEFAULT_LARCHPATH
-/* LCLint's imports directory */
+/* Splint's imports directory */
#undef DEFAULT_LCLIMPORTDIR
/* gcc's private include directory */
/* String describing who compiled this binary and how */
#undef LCL_COMPILE
-/* LCLint's version number */
+/* Splint's version number */
#undef LCL_PARSE_VERSION
-/* LCLint's version number and release date */
+/* Splint's version number and release date */
#undef LCL_VERSION
/* Define to disable support LCL files */
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by Autoconf 2.52 for LCLint 3.0.0.19.
+# Generated by Autoconf 2.52 for Splint 3.0.0.20.
#
-# Report bugs to <lclint-bug@cs.virginia.edu>.
+# Report bugs to <splint-bug@cs.virginia.edu>.
#
# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
mandir='${prefix}/man'
# Identity of this package.
-PACKAGE_NAME='LCLint'
-PACKAGE_TARNAME='lclint'
-PACKAGE_VERSION='3.0.0.19'
-PACKAGE_STRING='LCLint 3.0.0.19'
-PACKAGE_BUGREPORT='lclint-bug@cs.virginia.edu'
+PACKAGE_NAME='Splint'
+PACKAGE_TARNAME='splint'
+PACKAGE_VERSION='3.0.0.20'
+PACKAGE_STRING='Splint 3.0.0.20'
+PACKAGE_BUGREPORT='splint-bug@cs.virginia.edu'
ac_prev=
for ac_option
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<EOF
-\`configure' configures LCLint 3.0.0.19 to adapt to many kinds of systems.
+\`configure' configures Splint 3.0.0.20 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of LCLint 3.0.0.19:";;
+ short | recursive ) echo "Configuration of Splint 3.0.0.20:";;
esac
cat <<\EOF
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
-Report bugs to <lclint-bug@cs.virginia.edu>.
+Report bugs to <splint-bug@cs.virginia.edu>.
EOF
fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\EOF
-LCLint configure 3.0.0.19
+Splint configure 3.0.0.20
generated by GNU Autoconf 2.52
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by LCLint $as_me 3.0.0.19, which was
+It was created by Splint $as_me 3.0.0.20, which was
generated by GNU Autoconf 2.52. Invocation command line was
$ $0 $@
fi
# Define the identity of the package.
-PACKAGE=lclint
-VERSION=3.0.0.19
+PACKAGE=splint
+VERSION=3.0.0.20
# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
# the ones we care about.
ac_config_headers="$ac_config_headers config.h:config.hin"
-#drl 12-19-2001 commented out so LCLint won't depend on C++
+#drl 12-19-2001 commented out so Splint won't depend on C++
#AC_PROG_CXX
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
EOF
cat >>confdefs.h <<EOF
-#define DEFAULT_LARCHPATH ".$PATH_SEPARATOR$myprefix/share/lclint/lib$PATH_SEPARATOR`pwd`/lib$PATH_SEPARATOR"
+#define DEFAULT_LARCHPATH ".$PATH_SEPARATOR$myprefix/share/splint/lib$PATH_SEPARATOR`pwd`/lib$PATH_SEPARATOR"
EOF
cat >>confdefs.h <<EOF
-#define DEFAULT_LCLIMPORTDIR ".$PATH_SEPARATOR$myprefix/share/lclint/imports$PATH_SEPARATOR`pwd`/imports"
+#define DEFAULT_LCLIMPORTDIR ".$PATH_SEPARATOR$myprefix/share/splint/imports$PATH_SEPARATOR`pwd`/imports"
EOF
# These used to be in herald.h
-LCL_PARSE_VERSION="LCLint 3.0.0.19"
+LCL_PARSE_VERSION="Splint 3.0.0.20"
cat >>confdefs.h <<EOF
#define LCL_VERSION "$LCL_PARSE_VERSION --- `cat $srcdir/src/DATE`"
cat >>$CONFIG_STATUS <<EOF
ac_cs_version="\\
-LCLint config.status 3.0.0.19
+Splint config.status 3.0.0.20
configured by $0, generated by GNU Autoconf 2.52,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
## Running config.status. ##
## ----------------------- ##
-This file was extended by $as_me (LCLint 3.0.0.19) 2.52, executed with
+This file was extended by $as_me (Splint 3.0.0.20) 2.52, executed with
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
CONFIG_LINKS = $CONFIG_LINKS
dnl Process with autoconf to create a configure script -*- Autoconf -*-
AC_PREREQ(2.50)
-AC_INIT([LCLint], [3.0.0.19], [lclint-bug@cs.virginia.edu], [lclint])
+AC_INIT([Splint], [3.0.0.20], [splint-bug@cs.virginia.edu], [splint])
dnl This MUST precede any other macro
AC_CONFIG_AUX_DIR([config])
AM_INIT_AUTOMAKE(AC_PACKAGE_TARNAME, AC_PACKAGE_VERSION, AC_PACKAGE_BUGREPORT)
AM_CONFIG_HEADER([config.h:config.hin])
-dnl Prepare for LCLint processing of config.h
+dnl Prepare for Splint processing of config.h
AH_TOP([/*@-constmacros@*/])
AH_BOTTOM([/*@=constmacros@*/])
dnl Checks for programs.
-#drl 12-19-2001 commented out so LCLint won't depend on C++
+#drl 12-19-2001 commented out so Splint won't depend on C++
#AC_PROG_CXX
AC_PROG_CC
AC_PROG_CPP
AC_DEFINE_UNQUOTED(SYSTEM_LIBDIR, "$myprefix/include",
[The system's main include directory])
AC_DEFINE_UNQUOTED(DEFAULT_LARCHPATH,
- ".$PATH_SEPARATOR$myprefix/share/lclint/lib$PATH_SEPARATOR`pwd`/lib$PATH_SEPARATOR",
- [The directory where LCLint's library files live])
-AC_DEFINE_UNQUOTED(DEFAULT_LCLIMPORTDIR, ".$PATH_SEPARATOR$myprefix/share/lclint/imports$PATH_SEPARATOR`pwd`/imports",
- [LCLint's imports directory])
+ ".$PATH_SEPARATOR$myprefix/share/splint/lib$PATH_SEPARATOR`pwd`/lib$PATH_SEPARATOR",
+ [The directory where Splint's library files live])
+AC_DEFINE_UNQUOTED(DEFAULT_LCLIMPORTDIR, ".$PATH_SEPARATOR$myprefix/share/splint/imports$PATH_SEPARATOR`pwd`/imports",
+ [Splint's imports directory])
# These used to be in herald.h
LCL_PARSE_VERSION="AC_PACKAGE_NAME AC_PACKAGE_VERSION"
AC_DEFINE_UNQUOTED(LCL_VERSION,
"$LCL_PARSE_VERSION --- `cat $srcdir/src/DATE`",
- [LCLint's version number and release date])
+ [Splint's version number and release date])
AC_DEFINE_UNQUOTED(LCL_PARSE_VERSION, "$LCL_PARSE_VERSION",
- [LCLint's version number])
+ [Splint's version number])
AC_DEFINE_UNQUOTED(LCL_COMPILE,
"Compiled using $CC $CFLAGS on `uname -a` by `whoami`",
[String describing who compiled this binary and how])
mandir = ${prefix}/man
includedir = ${prefix}/include
oldincludedir = /usr/include
-pkgdatadir = $(datadir)/lclint
-pkglibdir = $(libdir)/lclint
-pkgincludedir = $(includedir)/lclint
+pkgdatadir = $(datadir)/splint
+pkglibdir = $(libdir)/splint
+pkgincludedir = $(includedir)/splint
top_builddir = ..
-ACLOCAL = ${SHELL} /tmp/LCLintDev/config/missing --run aclocal
-AUTOCONF = ${SHELL} /tmp/LCLintDev/config/missing --run autoconf
-AUTOMAKE = ${SHELL} /tmp/LCLintDev/config/missing --run automake
-AUTOHEADER = ${SHELL} /tmp/LCLintDev/config/missing --run autoheader
+ACLOCAL = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run aclocal
+AUTOCONF = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run autoconf
+AUTOMAKE = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run automake
+AUTOHEADER = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run autoheader
INSTALL = /usr/bin/install -c
INSTALL_PROGRAM = ${INSTALL}
POST_UNINSTALL = :
host_alias =
host_triplet = i686-pc-linux-gnu
-AMTAR = ${SHELL} /tmp/LCLintDev/config/missing --run tar
+AMTAR = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run tar
AWK = gawk
BISON = bison
CAT = cat
LN_S = ln -s
MV = mv
OBJEXT = o
-PACKAGE = lclint
+PACKAGE = splint
RM = rm
-VERSION = 3.0.0.19
+VERSION = 3.0.0.20
am__include = include
am__quote =
-install_sh = /tmp/LCLintDev/config/install-sh
+install_sh = /net/af10/evans/LCLintDev/config/install-sh
AUTOMAKE_OPTIONS = 1.5 foreign
AUTOMAKE_OPTIONS = 1.5 foreign
-## Put these files in $prefix/share/lclint/lib
-lclintlibdir = $(pkgdatadir)/lib
+## Put these files in $prefix/share/splint/lib
+splintlibdir = $(pkgdatadir)/lib
## List of files
-lclintlib_DATA = \
+splintlib_DATA = \
ansi.h ansi.lcd ansistrict.lcd posix.h posix.lcd posixstrict.lcd \
unix.h unix.lcd unixstrict.lcd CTrait.syms CTraitGen.lcl bool.h \
file.mts file.xh filerw.mts filerw.xh \
stdio.h stdlib.h
## Include them in the distribution
-EXTRA_DIST = $(lclintlib_DATA)
+EXTRA_DIST = $(splintlib_DATA)
-## Rules to make lclint & the dumps
+## Rules to make splint & the dumps
-LCLINT = $(top_builddir)/src/lclint$(EXEEXT)
+SPLINT = $(top_builddir)/src/splint$(EXEEXT)
-$(LCLINT):
+$(SPLINT):
cd $(top_builddir)/src; $(MAKE)
-ansi.lcd: ansi.h $(LCLINT)
- -$(LCLINT) -nolib +impconj ansi.h -dump ansi
+ansi.lcd: ansi.h $(SPLINT)
+ -$(SPLINT) -nolib +impconj ansi.h -dump ansi
@touch $@
-ansistrict.lcd: ansi.h $(LCLINT)
- -$(LCLINT) -nolib +impconj -DSTRICT ansi.h -dump ansistrict
+ansistrict.lcd: ansi.h $(SPLINT)
+ -$(SPLINT) -nolib +impconj -DSTRICT ansi.h -dump ansistrict
@touch $@
-posix.lcd: ansi.h posix.h $(LCLINT)
- -$(LCLINT) -nolib +impconj ansi.h posix.h -dump posix
+posix.lcd: ansi.h posix.h $(SPLINT)
+ -$(SPLINT) -nolib +impconj ansi.h posix.h -dump posix
@touch $@
-posixstrict.lcd: ansi.h posix.h $(LCLINT)
- -$(LCLINT) -nolib +impconj -DSTRICT ansi.h posix.h -dump posixstrict
+posixstrict.lcd: ansi.h posix.h $(SPLINT)
+ -$(SPLINT) -nolib +impconj -DSTRICT ansi.h posix.h -dump posixstrict
@touch $@
-unix.lcd: ansi.h posix.h unix.h $(LCLINT)
- -$(LCLINT) -nolib +impconj ansi.h posix.h unix.h stdio.h stdlib.h -dump unix
+unix.lcd: ansi.h posix.h unix.h $(SPLINT)
+ -$(SPLINT) -nolib +impconj ansi.h posix.h unix.h stdio.h stdlib.h -dump unix
@touch $@
-unixstrict.lcd: ansi.h posix.h unix.h $(LCLINT)
- -$(LCLINT) -nolib +impconj -DSTRICT ansi.h posix.h unix.h stdio.h stdlib.h -dump unixstrict
+unixstrict.lcd: ansi.h posix.h unix.h $(SPLINT)
+ -$(SPLINT) -nolib +impconj -DSTRICT ansi.h posix.h unix.h stdio.h stdlib.h -dump unixstrict
@touch $@
AUTOMAKE_OPTIONS = 1.5 foreign
-lclintlibdir = $(pkgdatadir)/lib
+splintlibdir = $(pkgdatadir)/lib
-lclintlib_DATA = \
+splintlib_DATA = \
ansi.h ansi.lcd ansistrict.lcd posix.h posix.lcd posixstrict.lcd \
unix.h unix.lcd unixstrict.lcd CTrait.syms CTraitGen.lcl bool.h \
file.mts file.xh filerw.mts filerw.xh \
stdio.h stdlib.h
-EXTRA_DIST = $(lclintlib_DATA)
+EXTRA_DIST = $(splintlib_DATA)
-LCLINT = $(top_builddir)/src/lclint$(EXEEXT)
+SPLINT = $(top_builddir)/src/splint$(EXEEXT)
subdir = lib
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
-DATA = $(lclintlib_DATA)
+DATA = $(splintlib_DATA)
DIST_COMMON = Makefile.am Makefile.in
all: all-am
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
uninstall-info-am:
-install-lclintlibDATA: $(lclintlib_DATA)
+install-splintlibDATA: $(splintlib_DATA)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(lclintlibdir)
- @list='$(lclintlib_DATA)'; for p in $$list; do \
+ $(mkinstalldirs) $(DESTDIR)$(splintlibdir)
+ @list='$(splintlib_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(lclintlibdir)/$$f"; \
- $(INSTALL_DATA) $$d$$p $(DESTDIR)$(lclintlibdir)/$$f; \
+ echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(splintlibdir)/$$f"; \
+ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(splintlibdir)/$$f; \
done
-uninstall-lclintlibDATA:
+uninstall-splintlibDATA:
@$(NORMAL_UNINSTALL)
- @list='$(lclintlib_DATA)'; for p in $$list; do \
+ @list='$(splintlib_DATA)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " rm -f $(DESTDIR)$(lclintlibdir)/$$f"; \
- rm -f $(DESTDIR)$(lclintlibdir)/$$f; \
+ echo " rm -f $(DESTDIR)$(splintlibdir)/$$f"; \
+ rm -f $(DESTDIR)$(splintlibdir)/$$f; \
done
tags: TAGS
TAGS:
all-am: Makefile $(DATA)
installdirs:
- $(mkinstalldirs) $(DESTDIR)$(lclintlibdir)
+ $(mkinstalldirs) $(DESTDIR)$(splintlibdir)
install: install-am
install-exec: install-exec-am
info-am:
-install-data-am: install-lclintlibDATA
+install-data-am: install-splintlibDATA
install-exec-am:
mostlyclean-am: mostlyclean-generic
-uninstall-am: uninstall-info-am uninstall-lclintlibDATA
+uninstall-am: uninstall-info-am uninstall-splintlibDATA
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am info info-am install \
install-am install-data install-data-am install-exec \
- install-exec-am install-info install-info-am \
- install-lclintlibDATA install-man install-strip installcheck \
+ install-exec-am install-info install-info-am install-man \
+ install-splintlibDATA install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
uninstall uninstall-am uninstall-info-am \
- uninstall-lclintlibDATA
+ uninstall-splintlibDATA
-$(LCLINT):
+$(SPLINT):
cd $(top_builddir)/src; $(MAKE)
-ansi.lcd: ansi.h $(LCLINT)
- -$(LCLINT) -nolib +impconj ansi.h -dump ansi
+ansi.lcd: ansi.h $(SPLINT)
+ -$(SPLINT) -nolib +impconj ansi.h -dump ansi
@touch $@
-ansistrict.lcd: ansi.h $(LCLINT)
- -$(LCLINT) -nolib +impconj -DSTRICT ansi.h -dump ansistrict
+ansistrict.lcd: ansi.h $(SPLINT)
+ -$(SPLINT) -nolib +impconj -DSTRICT ansi.h -dump ansistrict
@touch $@
-posix.lcd: ansi.h posix.h $(LCLINT)
- -$(LCLINT) -nolib +impconj ansi.h posix.h -dump posix
+posix.lcd: ansi.h posix.h $(SPLINT)
+ -$(SPLINT) -nolib +impconj ansi.h posix.h -dump posix
@touch $@
-posixstrict.lcd: ansi.h posix.h $(LCLINT)
- -$(LCLINT) -nolib +impconj -DSTRICT ansi.h posix.h -dump posixstrict
+posixstrict.lcd: ansi.h posix.h $(SPLINT)
+ -$(SPLINT) -nolib +impconj -DSTRICT ansi.h posix.h -dump posixstrict
@touch $@
-unix.lcd: ansi.h posix.h unix.h $(LCLINT)
- -$(LCLINT) -nolib +impconj ansi.h posix.h unix.h stdio.h stdlib.h -dump unix
+unix.lcd: ansi.h posix.h unix.h $(SPLINT)
+ -$(SPLINT) -nolib +impconj ansi.h posix.h unix.h stdio.h stdlib.h -dump unix
@touch $@
-unixstrict.lcd: ansi.h posix.h unix.h $(LCLINT)
- -$(LCLINT) -nolib +impconj -DSTRICT ansi.h posix.h unix.h stdio.h stdlib.h -dump unixstrict
+unixstrict.lcd: ansi.h posix.h unix.h $(SPLINT)
+ -$(SPLINT) -nolib +impconj -DSTRICT ansi.h posix.h unix.h stdio.h stdlib.h -dump unixstrict
@touch $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
-;;LCLint Dump: ansi.lcd
-;;LCLint 3.0.0.19 --- 5 October 2001
+;;; Splint Library ansi.lcd
+;;Splint 3.0.0.20 --- 5 October 2001
;;lib:168
;;ctTable
0 u-2 19 38
-;;LCLint Dump: ansistrict.lcd
-;;LCLint 3.0.0.19 --- 5 October 2001
+;;; Splint Library ansistrict.lcd
+;;Splint 3.0.0.20 --- 5 October 2001
;;lib:168
;;ctTable
0 u-2 19 38
-;;LCLint Dump: posix.lcd
-;;LCLint 3.0.0.19 --- 5 October 2001
+;;; Splint Library posix.lcd
+;;Splint 3.0.0.20 --- 5 October 2001
;;lib:168
;;ctTable
0 u-2 19 38
-;;LCLint Dump: posixstrict.lcd
-;;LCLint 3.0.0.19 --- 5 October 2001
+;;; Splint Library posixstrict.lcd
+;;Splint 3.0.0.20 --- 5 October 2001
;;lib:168
;;ctTable
0 u-2 19 38
-;;LCLint Dump: unix.lcd
-;;LCLint 3.0.0.19 --- 5 October 2001
+;;; Splint Library unix.lcd
+;;Splint 3.0.0.20 --- 5 October 2001
;;lib:168
;;ctTable
0 u-2 19 38
-;;LCLint Dump: unixstrict.lcd
-;;LCLint 3.0.0.19 --- 5 October 2001
+;;; Splint Library unixstrict.lcd
+;;Splint 3.0.0.20 --- 5 October 2001
;;lib:168
;;ctTable
0 u-2 19 38
# if defined(MSDOS)
/*@constant observer char *RCFILE; @*/
-# define RCFILE "lclint.rc"
+# define RCFILE "splint.rc"
# else
/*@constant observer char *RCFILE; @*/
-# define RCFILE ".lclintrc"
+# define RCFILE ".splintrc"
+
+/*@constant observer char *ALTRCFILE; @*/
+# define ALTRCFILE ".lclintrc"
# endif
/*@constant observer cstring LARCH_PATH; @*/
/*@constant observer char *DUMP_SUFFIX; @*/
# define DUMP_SUFFIX ".lcd"
+/*
+** All valid libraries start with this
+*/
+
+/*@constant observer char *LIBRARY_MARKER@*/
+# define LIBRARY_MARKER ";;; Splint Library "
+
/*@constant int MAX_NAME_LENGTH=256; @*/
# define MAX_NAME_LENGTH 256
/*@constant int MINLINELEN=20; @*/
# define MINLINELEN 20
+
/*
** WARNING: Can't use macros in token for cgrammar.l -->
** must keep these consistent!
/*@constant char PFX_ANYLETTERDIGIT; @*/
# define PFX_ANYLETTERDIGIT '/'
-
+
/*
** Note: this name is wired into ansi.h!
*/
SUFFIXES = .h .c .o .l .check
-# Check files before compiling; requires lclint!
+# Check files before compiling; requires splint!
CHECK = 1
# Some preferences
BISON_SRC = cgrammar.y llgrammar.y mtgrammar.y signature.y
-## We only build LCLint
-bin_PROGRAMS = lclint
+## We only build Splint
+bin_PROGRAMS = splint
## This is a fake program, so we can easily substitute in the extra LCL objects
EXTRA_PROGRAMS = lcl
functionClauseList.c metaStateConstraint.c metaStateConstraintList.c \
metaStateExpression.c metaStateSpecifier.c functionConstraint.c
-LCLINTSRC = exprNode.c exprChecks.c llmain.c
+SPLINTSRC = exprNode.c exprChecks.c llmain.c
CHECKSRC = structNames.c transferChecks.c varKinds.c nameChecks.c
GLOBSRC = context.c globals.c flags.c general.c osd.c reader.c
Headers/lsymbol.h Headers/version.h \
Headers/lsymbolList.h Headers/warnClause.h \
Headers/lsymbolSet.h Headers/ynm.h \
- Headers/ltoken.h Headers/lclintMacros.nf
+ Headers/ltoken.h Headers/splintMacros.nf
IFILES = ctbase.i cttable.i exprDataQuite.i
## Non-built files we need to distribute
EXTRA_DIST = DATE $(BISON_SRC) bison.head bison.reset $(HEADERSRC) \
flags.def cscanner.l flex.head flex.reset $(IFILES) \
- Headers/256_random_numbers.nf Headers/lclintMacros.nf Headers/reservedNames.nf
+ Headers/256_random_numbers.nf Headers/splintMacros.nf Headers/reservedNames.nf
#Files that are used on systems that do not have bison or yacc
COMMONSRC = $(OVERFLOWCHSRC) $(CPPSRC) $(CSRC) $(CHECKSRC) $(GENERALSRC) \
$(GLOBSRC) $(IFACESRC) $(LISTSRC) $(SETSRC) $(METASTATESRC)
-ALLSRC = $(GRAMSRC) $(COMMONSRC) $(LCLINTSRC) $(DER_FILES) $(HEADERSRC)
+ALLSRC = $(GRAMSRC) $(COMMONSRC) $(SPLINTSRC) $(DER_FILES) $(HEADERSRC)
-#files to run LCLint on
-LINTSRC = $(GRAMSRC) $(COMMONSRC) $(LCLINTSRC)
+#files to run Splint on
+LINTSRC = $(GRAMSRC) $(COMMONSRC) $(SPLINTSRC)
-#ALLSRC = $(COMMONSRC) $(LCLINTSRC) $(DER_FILES) $(HEADERSRC)
+#ALLSRC = $(COMMONSRC) $(SPLINTSRC) $(DER_FILES) $(HEADERSRC)
LCLSRC = $(LCLSETSRC) $(LCLLISTSRC) $(LSLSRC) $(CMNSRC) $(LCLONLYSRC) \
$(LCLGRAMSRC)
lcl_SOURCES = $(LCLSRC)
-lclint_SOURCES = $(ALLSRC)
-lclint_LDADD = $(LCLOBJ) @LEXLIB@
+splint_SOURCES = $(ALLSRC)
+splint_LDADD = $(LCLOBJ) @LEXLIB@
# Ensure the LCL objects get built if needed
-lclint_DEPENDENCIES = $(LCLOBJ)
+splint_DEPENDENCIES = $(LCLOBJ)
# Keep it fake
.PHONY: lcl$(EXEEXT)
## Checking rules
-CHECKS = $(subst .c,.check,$(lclint_SOURCES))
+CHECKS = $(subst .c,.check,$(splint_SOURCES))
## Other rules
maketags
lintnew:
- ./lclint -f lclint.lclintrc $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(LINTSRC) $(LCLSRC) -dump lclint \
+ ./splint $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(LINTSRC) $(LCLSRC) -dump lclint \
+forcehints -misplacedsharequal +showsourceloc -unrecogcomments \
-supcounts -fcnuse -exportlocal -constuse -mts file -mts filerw
lintbuffercheck:
- ./lclint -f lclint.lclintrc $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(LINTSRC) $(LCLSRC) -dump lclint \
+ ./splint $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(LINTSRC) $(LCLSRC) -dump lclint \
+forcehints -misplacedsharequal +showsourceloc -unrecogcomments \
-supcounts -fcnuse -exportlocal -constuse -mts file -mts filerw +arraybounds +arrayboundsread +implictconstraint
-all: lclint$(EXEEXT)
-CLEANFILES = lclint$(EXEEXT)
+all: splint$(EXEEXT)
+CLEANFILES = splint$(EXEEXT)
SUFFIXES = .h .c .o .l .check
-# Check files before compiling; requires lclint!
+# Check files before compiling; requires splint!
CHECK = 1
# Some preferences
BISON_SRC = cgrammar.y llgrammar.y mtgrammar.y signature.y
-bin_PROGRAMS = lclint
+bin_PROGRAMS = splint
EXTRA_PROGRAMS = lcl
metaStateExpression.c metaStateSpecifier.c functionConstraint.c
-LCLINTSRC = exprNode.c exprChecks.c llmain.c
+SPLINTSRC = exprNode.c exprChecks.c llmain.c
CHECKSRC = structNames.c transferChecks.c varKinds.c nameChecks.c
GLOBSRC = context.c globals.c flags.c general.c osd.c reader.c
Headers/lsymbol.h Headers/version.h \
Headers/lsymbolList.h Headers/warnClause.h \
Headers/lsymbolSet.h Headers/ynm.h \
- Headers/ltoken.h Headers/lclintMacros.nf
+ Headers/ltoken.h Headers/splintMacros.nf
IFILES = ctbase.i cttable.i exprDataQuite.i
EXTRA_DIST = DATE $(BISON_SRC) bison.head bison.reset $(HEADERSRC) \
flags.def cscanner.l flex.head flex.reset $(IFILES) \
- Headers/256_random_numbers.nf Headers/lclintMacros.nf Headers/reservedNames.nf
+ Headers/256_random_numbers.nf Headers/splintMacros.nf Headers/reservedNames.nf
#Files that are used on systems that do not have bison or yacc
$(GLOBSRC) $(IFACESRC) $(LISTSRC) $(SETSRC) $(METASTATESRC)
-ALLSRC = $(GRAMSRC) $(COMMONSRC) $(LCLINTSRC) $(DER_FILES) $(HEADERSRC)
+ALLSRC = $(GRAMSRC) $(COMMONSRC) $(SPLINTSRC) $(DER_FILES) $(HEADERSRC)
-#files to run LCLint on
-LINTSRC = $(GRAMSRC) $(COMMONSRC) $(LCLINTSRC)
+#files to run Splint on
+LINTSRC = $(GRAMSRC) $(COMMONSRC) $(SPLINTSRC)
-#ALLSRC = $(COMMONSRC) $(LCLINTSRC) $(DER_FILES) $(HEADERSRC)
+#ALLSRC = $(COMMONSRC) $(SPLINTSRC) $(DER_FILES) $(HEADERSRC)
LCLSRC = $(LCLSETSRC) $(LCLLISTSRC) $(LSLSRC) $(CMNSRC) $(LCLONLYSRC) \
$(LCLGRAMSRC)
lcl_SOURCES = $(LCLSRC)
-lclint_SOURCES = $(ALLSRC)
-lclint_LDADD = $(LCLOBJ) @LEXLIB@
+splint_SOURCES = $(ALLSRC)
+splint_LDADD = $(LCLOBJ) @LEXLIB@
# Ensure the LCL objects get built if needed
-lclint_DEPENDENCIES = $(LCLOBJ)
+splint_DEPENDENCIES = $(LCLOBJ)
BUILT_SOURCES = Headers/signature_gen.h Headers/cgrammar_tokens.h \
Headers/llgrammar_gen.h Headers/llgrammar_gen2.h \
$(DER_FILES)
-CHECKS = $(subst .c,.check,$(lclint_SOURCES))
-CLEANFILES = lclint$(EXEEXT)
+CHECKS = $(subst .c,.check,$(splint_SOURCES))
+CLEANFILES = splint$(EXEEXT)
subdir = src
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
EXTRA_PROGRAMS = lcl$(EXEEXT)
-bin_PROGRAMS = lclint$(EXEEXT)
+bin_PROGRAMS = splint$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS)
am_lcl_OBJECTS = lsymbolSet.$(OBJEXT) sigNodeSet.$(OBJEXT) \
lcl_LDADD = $(LDADD)
lcl_DEPENDENCIES =
lcl_LDFLAGS =
-am_lclint_OBJECTS = cgrammar.$(OBJEXT) cscanner.$(OBJEXT) \
+am_splint_OBJECTS = cgrammar.$(OBJEXT) cscanner.$(OBJEXT) \
mtscanner.$(OBJEXT) mtreader.$(OBJEXT) mtgrammar.$(OBJEXT) \
constraintGeneration.$(OBJEXT) constraintTerm.$(OBJEXT) \
constraintExprData.$(OBJEXT) constraintExpr.$(OBJEXT) \
mtDefaultsDecl.$(OBJEXT) mtMergeItem.$(OBJEXT) \
mtMergeClause.$(OBJEXT) mtMergeClauseList.$(OBJEXT) \
exprNode.$(OBJEXT) exprChecks.$(OBJEXT) llmain.$(OBJEXT)
-lclint_OBJECTS = $(am_lclint_OBJECTS)
-lclint_LDFLAGS =
+splint_OBJECTS = $(am_splint_OBJECTS)
+splint_LDFLAGS =
DEFS = @DEFS@
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
-DIST_SOURCES = $(lcl_SOURCES) $(lclint_SOURCES)
+DIST_SOURCES = $(lcl_SOURCES) $(splint_SOURCES)
DIST_COMMON = Makefile.am Makefile.in
-SOURCES = $(lcl_SOURCES) $(lclint_SOURCES)
+SOURCES = $(lcl_SOURCES) $(splint_SOURCES)
all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-lclint$(EXEEXT): $(lclint_OBJECTS) $(lclint_DEPENDENCIES)
- @rm -f lclint$(EXEEXT)
- $(LINK) $(lclint_LDFLAGS) $(lclint_OBJECTS) $(lclint_LDADD) $(LIBS)
+splint$(EXEEXT): $(splint_OBJECTS) $(splint_DEPENDENCIES)
+ @rm -f splint$(EXEEXT)
+ $(LINK) $(splint_LDFLAGS) $(splint_OBJECTS) $(splint_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT) core *.core
maketags
lintnew:
- ./lclint -f lclint.lclintrc $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(LINTSRC) $(LCLSRC) -dump lclint \
+ ./splint $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(LINTSRC) $(LCLSRC) -dump lclint \
+forcehints -misplacedsharequal +showsourceloc -unrecogcomments \
-supcounts -fcnuse -exportlocal -constuse -mts file -mts filerw
lintbuffercheck:
- ./lclint -f lclint.lclintrc $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(LINTSRC) $(LCLSRC) -dump lclint \
+ ./splint $(DEFAULT_INCLUDES) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) +singleinclude $(LINTSRC) $(LCLSRC) -dump lclint \
+forcehints -misplacedsharequal +showsourceloc -unrecogcomments \
-supcounts -fcnuse -exportlocal -constuse -mts file -mts filerw +arraybounds +arrayboundsread +implictconstraint
-all: lclint$(EXEEXT)
+all: splint$(EXEEXT)
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** abstract.c
}
s = message ("%q%s", s, sortText);
- break; /*** <<<--- bug detected by LCLint ***/
+ break;
}
case OPF_MMIDDLE:
{
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** aliasTable.c
llquietbug
(message ("Alias search limit exceeded, checking %q. "
"This either means there is a variable with at least "
- "%d indirections, or there is a bug in LCLint.",
+ "%d indirections, or there is a bug in Splint.",
sRef_unparse (sr),
ALIASSEARCHLIMIT));
llquietbug
(message ("Alias search limit exceeded, checking %q. "
"This either means there is a variable with at least "
- "%d indirections, or there is a bug in LCLint.",
+ "%d indirections, or there is a bug in Splint.",
sRef_unparse (sr),
ALIASSEARCHLIMIT));
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** annotationInfo.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** annotationTable.c
#define TYPE_NAME 444
#define METASTATE_NAME 445
-#line 19 "cgrammar.y"
+#line 24 "cgrammar.y"
/*
**
# endif
-#line 75 "cgrammar.y"
+#line 80 "cgrammar.y"
typedef union
{
lltok tok;
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 313, 314, 317, 318, 321, 322, 323, 324, 325, 326,
- 327, 330, 332, 336, 336, 343, 349, 353, 354, 358,
- 359, 361, 363, 375, 378, 388, 391, 399, 400, 402,
- 404, 420, 423, 431, 434, 442, 444, 444, 448, 449,
- 450, 451, 454, 457, 461, 461, 464, 464, 469, 470,
- 473, 478, 479, 482, 487, 488, 491, 492, 493, 496,
- 497, 498, 503, 504, 507, 509, 511, 513, 522, 524,
- 526, 528, 544, 548, 549, 556, 557, 565, 567, 571,
- 572, 573, 574, 575, 576, 579, 580, 581, 582, 583,
- 584, 587, 590, 591, 598, 601, 604, 610, 618, 620,
- 624, 627, 628, 631, 634, 640, 644, 645, 648, 651,
- 652, 655, 656, 657, 660, 661, 662, 663, 664, 667,
- 668, 669, 670, 671, 674, 675, 678, 684, 688, 690,
- 694, 695, 697, 704, 714, 715, 718, 719, 720, 721,
- 722, 723, 724, 725, 729, 730, 734, 735, 738, 740,
- 742, 743, 744, 745, 746, 748, 752, 753, 756, 760,
- 772, 773, 774, 775, 776, 777, 780, 781, 782, 783,
- 784, 785, 786, 787, 788, 791, 792, 795, 796, 797,
- 798, 799, 800, 801, 802, 803, 804, 805, 808, 809,
- 812, 816, 817, 820, 821, 822, 823, 826, 827, 831,
- 832, 833, 834, 837, 838, 839, 842, 843, 844, 847,
- 848, 849, 850, 851, 854, 855, 856, 859, 860, 863,
- 864, 868, 869, 872, 873, 878, 884, 885, 891, 897,
- 898, 898, 900, 903, 904, 905, 906, 907, 908, 909,
- 910, 911, 912, 913, 914, 917, 918, 921, 922, 925,
- 930, 931, 932, 935, 949, 954, 960, 962, 968, 973,
- 973, 977, 978, 980, 981, 984, 987, 990, 993, 994,
- 997, 998, 1001, 1002, 1003, 1007, 1009, 1018, 1019, 1020,
- 1021, 1022, 1024, 1028, 1031, 1037, 1046, 1049, 1052, 1059,
- 1066, 1072, 1097, 1098, 1101, 1102, 1103, 1104, 1105, 1108,
- 1109, 1110, 1111, 1114, 1115, 1116, 1117, 1118, 1119, 1120,
- 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130,
- 1134, 1135, 1138, 1139, 1142, 1143, 1146, 1147, 1148, 1149,
- 1152, 1153, 1154, 1155, 1156, 1157, 1160, 1161, 1162, 1163,
- 1166, 1167, 1168, 1169, 1172, 1173, 1174, 1175, 1176, 1177,
- 1178, 1179, 1180, 1181, 1182, 1189, 1190, 1191, 1192, 1193,
- 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1205,
- 1209, 1210, 1214, 1215, 1219, 1220, 1221, 1224, 1225, 1228,
- 1230, 1232, 1233, 1235, 1237, 1238, 1240, 1242, 1244, 1246,
- 1247, 1248, 1251, 1252, 1254, 1256, 1257, 1260, 1263, 1264,
- 1265, 1268, 1270, 1274, 1276, 1280, 1281, 1282, 1286, 1288,
- 1288, 1290, 1293, 1295, 1297, 1300, 1305, 1312, 1313, 1314,
- 1321, 1325, 1326, 1330, 1331, 1334, 1335, 1338, 1339, 1342,
- 1343, 1344, 1345, 1348, 1349, 1352, 1353, 1356, 1357, 1358,
- 1361, 1361, 1362, 1363, 1366, 1378, 1394, 1395, 1398, 1399,
- 1400, 1403, 1404, 1407, 1409, 1410, 1412, 1413, 1415, 1417,
- 1419, 1421, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434,
- 1435, 1450, 1453, 1456, 1457, 1461, 1463, 1465, 1467, 1471,
- 1472, 1474, 1478, 1480, 1482, 1485, 1486, 1487, 1488, 1489,
- 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1500, 1506,
- 1509, 1512, 1513, 1516, 1517, 1518, 1519, 1520, 1521, 1522,
- 1523, 1524, 1525, 1526, 1529, 1530, 1536, 1537, 1538, 1539,
- 1542, 1543, 1544, 1545, 1548, 1549, 1553, 1556, 1559, 1562,
- 1565, 1568, 1571, 1572, 1573, 1574, 1576, 1577, 1579, 1581,
- 1587, 1591, 1593, 1595, 1597, 1601, 1602, 1605, 1606, 1609,
- 1610, 1613, 1614, 1617, 1618, 1619, 1622, 1630, 1635, 1636,
- 1640, 1641, 1644, 1649, 1652, 1653, 1654, 1662, 1663, 1663,
- 1667, 1668, 1669, 1680, 1687, 1688, 1691, 1692, 1695, 1696,
- 1697, 1698, 1699, 1701, 1702, 1703, 1704, 1707, 1708, 1709,
- 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1719, 1720, 1723,
- 1724, 1725, 1726, 1729, 1730, 1731, 1734, 1735, 1736, 1739,
- 1740, 1741, 1742, 1743, 1746, 1747, 1748, 1751, 1752, 1755,
- 1756, 1760, 1761, 1764, 1765, 1768, 1769, 1772, 1773, 1774,
- 1775, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786,
- 1787, 1788, 1789, 1792, 1793, 1796, 1799, 1801, 1803, 1807,
- 1808, 1810, 1812, 1815, 1816, 1817, 1819, 1820, 1821, 1822,
- 1823, 1824, 1825, 1828, 1829, 1832, 1835, 1836, 1837, 1838,
- 1839, 1842, 1843
+ 318, 319, 322, 323, 326, 327, 328, 329, 330, 331,
+ 332, 335, 337, 341, 341, 348, 354, 358, 359, 363,
+ 364, 366, 368, 380, 383, 393, 396, 404, 405, 407,
+ 409, 425, 428, 436, 439, 447, 449, 449, 453, 454,
+ 455, 456, 459, 462, 466, 466, 469, 469, 474, 475,
+ 478, 483, 484, 487, 492, 493, 496, 497, 498, 501,
+ 502, 503, 508, 509, 512, 514, 516, 518, 527, 529,
+ 531, 533, 549, 553, 554, 561, 562, 570, 572, 576,
+ 577, 578, 579, 580, 581, 584, 585, 586, 587, 588,
+ 589, 592, 595, 596, 603, 606, 609, 615, 623, 625,
+ 629, 632, 633, 636, 639, 645, 649, 650, 653, 656,
+ 657, 660, 661, 662, 665, 666, 667, 668, 669, 672,
+ 673, 674, 675, 676, 679, 680, 683, 689, 693, 695,
+ 699, 700, 702, 709, 719, 720, 723, 724, 725, 726,
+ 727, 728, 729, 730, 734, 735, 739, 740, 743, 745,
+ 747, 748, 749, 750, 751, 753, 757, 758, 761, 765,
+ 777, 778, 779, 780, 781, 782, 785, 786, 787, 788,
+ 789, 790, 791, 792, 793, 796, 797, 800, 801, 802,
+ 803, 804, 805, 806, 807, 808, 809, 810, 813, 814,
+ 817, 821, 822, 825, 826, 827, 828, 831, 832, 836,
+ 837, 838, 839, 842, 843, 844, 847, 848, 849, 852,
+ 853, 854, 855, 856, 859, 860, 861, 864, 865, 868,
+ 869, 873, 874, 877, 878, 883, 889, 890, 896, 902,
+ 903, 903, 905, 908, 909, 910, 911, 912, 913, 914,
+ 915, 916, 917, 918, 919, 922, 923, 926, 927, 930,
+ 935, 936, 937, 940, 954, 959, 965, 967, 973, 978,
+ 978, 982, 983, 985, 986, 989, 992, 995, 998, 999,
+ 1002, 1003, 1006, 1007, 1008, 1012, 1014, 1023, 1024, 1025,
+ 1026, 1027, 1029, 1033, 1036, 1042, 1051, 1054, 1057, 1064,
+ 1071, 1077, 1102, 1103, 1106, 1107, 1108, 1109, 1110, 1113,
+ 1114, 1115, 1116, 1119, 1120, 1121, 1122, 1123, 1124, 1125,
+ 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135,
+ 1139, 1140, 1143, 1144, 1147, 1148, 1151, 1152, 1153, 1154,
+ 1157, 1158, 1159, 1160, 1161, 1162, 1165, 1166, 1167, 1168,
+ 1171, 1172, 1173, 1174, 1177, 1178, 1179, 1180, 1181, 1182,
+ 1183, 1184, 1185, 1186, 1187, 1194, 1195, 1196, 1197, 1198,
+ 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1210,
+ 1214, 1215, 1219, 1220, 1224, 1225, 1226, 1229, 1230, 1233,
+ 1235, 1237, 1238, 1240, 1242, 1243, 1245, 1247, 1249, 1251,
+ 1252, 1253, 1256, 1257, 1259, 1261, 1262, 1265, 1268, 1269,
+ 1270, 1273, 1275, 1279, 1281, 1285, 1286, 1287, 1291, 1293,
+ 1293, 1295, 1298, 1300, 1302, 1305, 1310, 1317, 1318, 1319,
+ 1326, 1330, 1331, 1335, 1336, 1339, 1340, 1343, 1344, 1347,
+ 1348, 1349, 1350, 1353, 1354, 1357, 1358, 1361, 1362, 1363,
+ 1366, 1366, 1367, 1368, 1371, 1383, 1399, 1400, 1403, 1404,
+ 1405, 1408, 1409, 1412, 1414, 1415, 1417, 1418, 1420, 1422,
+ 1424, 1426, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439,
+ 1440, 1455, 1458, 1461, 1462, 1466, 1468, 1470, 1472, 1476,
+ 1477, 1479, 1483, 1485, 1487, 1490, 1491, 1492, 1493, 1494,
+ 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1505, 1511,
+ 1514, 1517, 1518, 1521, 1522, 1523, 1524, 1525, 1526, 1527,
+ 1528, 1529, 1530, 1531, 1534, 1535, 1541, 1542, 1543, 1544,
+ 1547, 1548, 1549, 1550, 1553, 1554, 1558, 1561, 1564, 1567,
+ 1570, 1573, 1576, 1577, 1578, 1579, 1581, 1582, 1584, 1586,
+ 1592, 1596, 1598, 1600, 1602, 1606, 1607, 1610, 1611, 1614,
+ 1615, 1618, 1619, 1622, 1623, 1624, 1627, 1635, 1640, 1641,
+ 1645, 1646, 1649, 1654, 1657, 1658, 1659, 1667, 1668, 1668,
+ 1672, 1673, 1674, 1685, 1692, 1693, 1696, 1697, 1700, 1701,
+ 1702, 1703, 1704, 1706, 1707, 1708, 1709, 1712, 1713, 1714,
+ 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1724, 1725, 1728,
+ 1729, 1730, 1731, 1734, 1735, 1736, 1739, 1740, 1741, 1744,
+ 1745, 1746, 1747, 1748, 1751, 1752, 1753, 1756, 1757, 1760,
+ 1761, 1765, 1766, 1769, 1770, 1773, 1774, 1777, 1778, 1779,
+ 1780, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791,
+ 1792, 1793, 1794, 1797, 1798, 1801, 1804, 1806, 1808, 1812,
+ 1813, 1815, 1817, 1820, 1821, 1822, 1824, 1825, 1826, 1827,
+ 1828, 1829, 1830, 1833, 1834, 1837, 1840, 1841, 1842, 1843,
+ 1844, 1847, 1848
};
#endif
switch (yyn) {
case 3:
-#line 317 "cgrammar.y"
+#line 322 "cgrammar.y"
{ context_checkGlobalScope (); ;
break;}
case 4:
-#line 318 "cgrammar.y"
+#line 323 "cgrammar.y"
{ context_checkGlobalScope (); ;
break;}
case 5:
-#line 321 "cgrammar.y"
+#line 326 "cgrammar.y"
{ uentry_clearDecl (); ;
break;}
case 6:
-#line 322 "cgrammar.y"
+#line 327 "cgrammar.y"
{ uentry_clearDecl (); ;
break;}
case 7:
-#line 323 "cgrammar.y"
+#line 328 "cgrammar.y"
{ uentry_clearDecl (); ;
break;}
case 8:
-#line 324 "cgrammar.y"
+#line 329 "cgrammar.y"
{ uentry_clearDecl (); ;
break;}
case 9:
-#line 325 "cgrammar.y"
+#line 330 "cgrammar.y"
{ uentry_clearDecl (); ;
break;}
case 10:
-#line 326 "cgrammar.y"
+#line 331 "cgrammar.y"
{ uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
break;}
case 11:
-#line 327 "cgrammar.y"
+#line 332 "cgrammar.y"
{ uentry_clearDecl (); ;
break;}
case 12:
-#line 331 "cgrammar.y"
+#line 336 "cgrammar.y"
{ checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
break;}
case 13:
-#line 333 "cgrammar.y"
+#line 338 "cgrammar.y"
{ checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
break;}
case 14:
-#line 336 "cgrammar.y"
+#line 341 "cgrammar.y"
{ context_enterFunctionHeader (); ;
break;}
case 15:
-#line 337 "cgrammar.y"
+#line 342 "cgrammar.y"
{
declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
context_exitFunctionHeader ();
;
break;}
case 16:
-#line 344 "cgrammar.y"
+#line 349 "cgrammar.y"
{
qtype qint = qtype_create (ctype_int);
yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
;
break;}
case 17:
-#line 350 "cgrammar.y"
+#line 355 "cgrammar.y"
{ yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
break;}
case 19:
-#line 355 "cgrammar.y"
+#line 360 "cgrammar.y"
{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
break;}
case 20:
-#line 358 "cgrammar.y"
+#line 363 "cgrammar.y"
{ yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
break;}
case 21:
-#line 360 "cgrammar.y"
+#line 365 "cgrammar.y"
{ yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
break;}
case 22:
-#line 362 "cgrammar.y"
+#line 367 "cgrammar.y"
{ yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
break;}
case 23:
-#line 364 "cgrammar.y"
+#line 369 "cgrammar.y"
{
exprNode_findValue(yyvsp[-2].expr);
if (exprNode_hasValue (yyvsp[-2].expr))
;
break;}
case 24:
-#line 376 "cgrammar.y"
+#line 381 "cgrammar.y"
{ setCurrentParams (uentryList_missingParams); ;
break;}
case 25:
-#line 378 "cgrammar.y"
+#line 383 "cgrammar.y"
{ /* need to support globals and modifies here! */
ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
uentryList_makeMissingParams ());
;
break;}
case 26:
-#line 389 "cgrammar.y"
+#line 394 "cgrammar.y"
{ setCurrentParams (yyvsp[-1].entrylist); ;
break;}
case 27:
-#line 391 "cgrammar.y"
+#line 396 "cgrammar.y"
{ setImplictfcnConstraints ();
clearCurrentParams ();
yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
;
break;}
case 28:
-#line 399 "cgrammar.y"
+#line 404 "cgrammar.y"
{ yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
break;}
case 29:
-#line 401 "cgrammar.y"
+#line 406 "cgrammar.y"
{ yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
break;}
case 30:
-#line 403 "cgrammar.y"
+#line 408 "cgrammar.y"
{ yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
break;}
case 31:
-#line 405 "cgrammar.y"
+#line 410 "cgrammar.y"
{
int value;
;
break;}
case 32:
-#line 421 "cgrammar.y"
+#line 426 "cgrammar.y"
{ setCurrentParams (uentryList_missingParams); ;
break;}
case 33:
-#line 423 "cgrammar.y"
+#line 428 "cgrammar.y"
{
ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
uentryList_makeMissingParams ());
;
break;}
case 34:
-#line 432 "cgrammar.y"
+#line 437 "cgrammar.y"
{ setCurrentParams (yyvsp[-1].entrylist); ;
break;}
case 35:
-#line 434 "cgrammar.y"
+#line 439 "cgrammar.y"
{
clearCurrentParams ();
yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
;
break;}
case 36:
-#line 443 "cgrammar.y"
+#line 448 "cgrammar.y"
{ setCurrentParams (yyvsp[-1].entrylist); ;
break;}
case 37:
-#line 444 "cgrammar.y"
+#line 449 "cgrammar.y"
{ clearCurrentParams (); ;
break;}
case 38:
-#line 445 "cgrammar.y"
+#line 450 "cgrammar.y"
{ declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
break;}
case 39:
-#line 448 "cgrammar.y"
+#line 453 "cgrammar.y"
{ exprNode_checkMacroBody (yyvsp[-1].expr); ;
break;}
case 40:
-#line 449 "cgrammar.y"
+#line 454 "cgrammar.y"
{ exprNode_checkIterBody (yyvsp[-1].expr); ;
break;}
case 41:
-#line 450 "cgrammar.y"
+#line 455 "cgrammar.y"
{ exprNode_checkIterEnd (yyvsp[-1].expr); ;
break;}
case 42:
-#line 451 "cgrammar.y"
+#line 456 "cgrammar.y"
{ exprChecks_checkEmptyMacroBody (); ;
break;}
case 43:
-#line 454 "cgrammar.y"
+#line 459 "cgrammar.y"
{ clabstract_declareFunction (yyvsp[0].ntyp); ;
break;}
case 44:
-#line 458 "cgrammar.y"
+#line 463 "cgrammar.y"
{ yyval.msconstraint = metaStateConstraint_create (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
break;}
case 45:
-#line 461 "cgrammar.y"
+#line 466 "cgrammar.y"
{ cscanner_expectingMetaStateName (); ;
break;}
case 46:
-#line 462 "cgrammar.y"
+#line 467 "cgrammar.y"
{ cscanner_clearExpectingMetaStateName ();
yyval.msspec = metaStateSpecifier_create (yyvsp[-3].sr, yyvsp[0].msinfo); ;
break;}
case 47:
-#line 464 "cgrammar.y"
+#line 469 "cgrammar.y"
{ cscanner_expectingMetaStateName (); ;
break;}
case 48:
-#line 465 "cgrammar.y"
+#line 470 "cgrammar.y"
{ cscanner_clearExpectingMetaStateName ();
yyval.msspec = metaStateSpecifier_createElipsis (yyvsp[0].msinfo); ;
break;}
case 49:
-#line 469 "cgrammar.y"
+#line 474 "cgrammar.y"
{ yyval.msexpr = metaStateExpression_create (yyvsp[0].msspec); ;
break;}
case 50:
-#line 470 "cgrammar.y"
+#line 475 "cgrammar.y"
{ yyval.msexpr = metaStateExpression_createMerge (yyvsp[-2].msspec, yyvsp[0].msexpr); ;
break;}
case 52:
-#line 478 "cgrammar.y"
+#line 483 "cgrammar.y"
{ yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ;
break;}
case 53:
-#line 479 "cgrammar.y"
+#line 484 "cgrammar.y"
{ yyval.conL = constraintList_single (yyvsp[0].con); ;
break;}
case 54:
-#line 482 "cgrammar.y"
+#line 487 "cgrammar.y"
{
yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE);
DPRINTF(("Done BufConstraint1\n")); ;
break;}
case 61:
-#line 497 "cgrammar.y"
+#line 502 "cgrammar.y"
{yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ;
break;}
case 62:
-#line 498 "cgrammar.y"
+#line 503 "cgrammar.y"
{
DPRINTF( ("Got BufConstraintExpr BINary Op ") );
yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ;
break;}
case 63:
-#line 503 "cgrammar.y"
+#line 508 "cgrammar.y"
{ yyval.conE = constraintExpr_makeTermsRef (yyvsp[0].sr);;
break;}
case 64:
-#line 504 "cgrammar.y"
+#line 509 "cgrammar.y"
{ yyval.conE = constraintExpr_makeIntLiteral (exprNode_getLongValue (yyvsp[0].expr)); ;
break;}
case 65:
-#line 508 "cgrammar.y"
+#line 513 "cgrammar.y"
{ /*@-onlytrans@*/ yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry); /*@=onlytrans@*/ /*@i523@*/ ;
break;}
case 66:
-#line 510 "cgrammar.y"
+#line 515 "cgrammar.y"
{ yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
break;}
case 67:
-#line 512 "cgrammar.y"
+#line 517 "cgrammar.y"
{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
break;}
case 68:
-#line 514 "cgrammar.y"
+#line 519 "cgrammar.y"
{
/*
char *t; int c;
;
break;}
case 69:
-#line 523 "cgrammar.y"
+#line 528 "cgrammar.y"
{ yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
break;}
case 70:
-#line 525 "cgrammar.y"
+#line 530 "cgrammar.y"
{ yyval.sr = yyvsp[-1].sr; ;
break;}
case 71:
-#line 527 "cgrammar.y"
+#line 532 "cgrammar.y"
{ cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
break;}
case 72:
-#line 529 "cgrammar.y"
+#line 534 "cgrammar.y"
{ cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
break;}
case 76:
-#line 556 "cgrammar.y"
+#line 561 "cgrammar.y"
{ yyval.funcclauselist = functionClauseList_new (); ;
break;}
case 77:
-#line 558 "cgrammar.y"
+#line 563 "cgrammar.y"
{ yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
break;}
case 78:
-#line 566 "cgrammar.y"
+#line 571 "cgrammar.y"
{ yyval.funcclauselist = functionClauseList_new (); ;
break;}
case 79:
-#line 568 "cgrammar.y"
+#line 573 "cgrammar.y"
{ yyval.funcclauselist = functionClauseList_prepend (yyvsp[0].funcclauselist, yyvsp[-1].funcclause); ;
break;}
case 80:
-#line 571 "cgrammar.y"
+#line 576 "cgrammar.y"
{ yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
break;}
case 81:
-#line 572 "cgrammar.y"
+#line 577 "cgrammar.y"
{ yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
break;}
case 82:
-#line 573 "cgrammar.y"
+#line 578 "cgrammar.y"
{ yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
break;}
case 83:
-#line 574 "cgrammar.y"
+#line 579 "cgrammar.y"
{ yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
break;}
case 84:
-#line 575 "cgrammar.y"
+#line 580 "cgrammar.y"
{ yyval.funcclause = yyvsp[0].funcclause; ;
break;}
case 85:
-#line 576 "cgrammar.y"
+#line 581 "cgrammar.y"
{ yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
break;}
case 86:
-#line 579 "cgrammar.y"
+#line 584 "cgrammar.y"
{ yyval.funcclause = functionClause_createGlobals (yyvsp[0].globsclause); ;
break;}
case 87:
-#line 580 "cgrammar.y"
+#line 585 "cgrammar.y"
{ yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
break;}
case 88:
-#line 581 "cgrammar.y"
+#line 586 "cgrammar.y"
{ yyval.funcclause = functionClause_createModifies (yyvsp[0].modsclause); ;
break;}
case 89:
-#line 582 "cgrammar.y"
+#line 587 "cgrammar.y"
{ yyval.funcclause = functionClause_createState (yyvsp[0].stateclause); ;
break;}
case 90:
-#line 583 "cgrammar.y"
+#line 588 "cgrammar.y"
{ yyval.funcclause = yyvsp[0].funcclause; ;
break;}
case 91:
-#line 584 "cgrammar.y"
+#line 589 "cgrammar.y"
{ yyval.funcclause = functionClause_createWarn (yyvsp[0].warnclause); ;
break;}
case 92:
-#line 587 "cgrammar.y"
+#line 592 "cgrammar.y"
{ yyval.globsclause = yyvsp[-1].globsclause; ;
break;}
case 93:
-#line 590 "cgrammar.y"
+#line 595 "cgrammar.y"
{ setProcessingGlobalsList (); ;
break;}
case 94:
-#line 592 "cgrammar.y"
+#line 597 "cgrammar.y"
{
unsetProcessingGlobals ();
yyval.globsclause = globalsClause_create (yyvsp[-3].tok, yyvsp[-1].globset);
;
break;}
case 95:
-#line 598 "cgrammar.y"
+#line 603 "cgrammar.y"
{ yyval.modsclause = modifiesClause_createNoMods (yyvsp[0].tok); ;
break;}
case 96:
-#line 601 "cgrammar.y"
+#line 606 "cgrammar.y"
{ yyval.modsclause = yyvsp[-1].modsclause; ;
break;}
case 97:
-#line 605 "cgrammar.y"
+#line 610 "cgrammar.y"
{
context_setProtectVars (); enterParamsTemp ();
sRef_setGlobalScopeSafe ();
;
break;}
case 98:
-#line 610 "cgrammar.y"
+#line 615 "cgrammar.y"
{
exitParamsTemp ();
sRef_clearGlobalScopeSafe ();
;
break;}
case 99:
-#line 619 "cgrammar.y"
+#line 624 "cgrammar.y"
{ yyval.flagspec = flagSpec_createPlain (yyvsp[0].cname); ;
break;}
case 100:
-#line 621 "cgrammar.y"
+#line 626 "cgrammar.y"
{ yyval.flagspec = flagSpec_createOr (yyvsp[-2].cname, yyvsp[0].flagspec); ;
break;}
case 103:
-#line 628 "cgrammar.y"
+#line 633 "cgrammar.y"
{ yyval.warnclause = warnClause_undefined; ;
break;}
case 104:
-#line 631 "cgrammar.y"
+#line 636 "cgrammar.y"
{ yyval.warnclause = yyvsp[-1].warnclause; ;
break;}
case 105:
-#line 635 "cgrammar.y"
+#line 640 "cgrammar.y"
{
llassert (exprNode_knownStringValue (yyvsp[0].expr));
yyval.warnclause = warnClause_create (yyvsp[-2].tok, yyvsp[-1].flagspec, cstring_copy (multiVal_forceString (exprNode_getValue (yyvsp[0].expr))));
;
break;}
case 106:
-#line 641 "cgrammar.y"
+#line 646 "cgrammar.y"
{ yyval.warnclause = warnClause_create (yyvsp[-1].tok, yyvsp[0].flagspec, cstring_undefined); ;
break;}
case 107:
-#line 644 "cgrammar.y"
+#line 649 "cgrammar.y"
{ yyval.globset = globSet_single (yyvsp[0].sr); ;
break;}
case 108:
-#line 645 "cgrammar.y"
+#line 650 "cgrammar.y"
{ yyval.globset = globSet_insert (yyvsp[-2].globset, yyvsp[0].sr); ;
break;}
case 109:
-#line 648 "cgrammar.y"
+#line 653 "cgrammar.y"
{ yyval.sr = clabstract_createGlobal (yyvsp[0].sr, yyvsp[-1].tquallist); ;
break;}
case 110:
-#line 651 "cgrammar.y"
+#line 656 "cgrammar.y"
{ yyval.tquallist = qualList_undefined; ;
break;}
case 111:
-#line 652 "cgrammar.y"
+#line 657 "cgrammar.y"
{ yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
break;}
case 112:
-#line 655 "cgrammar.y"
+#line 660 "cgrammar.y"
{ yyval.sr = uentry_getSref (yyvsp[0].entry); ;
break;}
case 113:
-#line 656 "cgrammar.y"
+#line 661 "cgrammar.y"
{ yyval.sr = clabstract_unrecognizedGlobal (yyvsp[0].cname); ;
break;}
case 114:
-#line 657 "cgrammar.y"
+#line 662 "cgrammar.y"
{ yyval.sr = clabstract_checkGlobal (yyvsp[0].expr); ;
break;}
case 115:
-#line 660 "cgrammar.y"
+#line 665 "cgrammar.y"
{ yyval.typequal = qual_createUndef (); ;
break;}
case 116:
-#line 661 "cgrammar.y"
+#line 666 "cgrammar.y"
{ yyval.typequal = qual_createKilled (); ;
break;}
case 117:
-#line 662 "cgrammar.y"
+#line 667 "cgrammar.y"
{ yyval.typequal = qual_createOut (); ;
break;}
case 118:
-#line 663 "cgrammar.y"
+#line 668 "cgrammar.y"
{ yyval.typequal = qual_createIn (); ;
break;}
case 119:
-#line 664 "cgrammar.y"
+#line 669 "cgrammar.y"
{ yyval.typequal = qual_createPartial (); ;
break;}
case 127:
-#line 679 "cgrammar.y"
+#line 684 "cgrammar.y"
{
qtype qint = qtype_create (ctype_int);
yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
;
break;}
case 128:
-#line 685 "cgrammar.y"
+#line 690 "cgrammar.y"
{ yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
break;}
case 129:
-#line 688 "cgrammar.y"
+#line 693 "cgrammar.y"
{ checkDoneParams (); context_enterInnerContext (); ;
break;}
case 130:
-#line 690 "cgrammar.y"
+#line 695 "cgrammar.y"
{
exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
context_exitInner (yyvsp[0].expr);
;
break;}
case 131:
-#line 694 "cgrammar.y"
+#line 699 "cgrammar.y"
{ context_enterOldStyleScope (); ;
break;}
case 132:
-#line 695 "cgrammar.y"
+#line 700 "cgrammar.y"
{ oldStyleDoneParams (); context_enterInnerContext (); ;
break;}
case 133:
-#line 697 "cgrammar.y"
+#line 702 "cgrammar.y"
{
exprNode_checkFunctionBody (yyvsp[0].expr);
yyval.expr = yyvsp[0].expr; /* oldstyle */
;
break;}
case 134:
-#line 705 "cgrammar.y"
+#line 710 "cgrammar.y"
{
context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
;
break;}
case 135:
-#line 714 "cgrammar.y"
+#line 719 "cgrammar.y"
{ yyval.srset = yyvsp[-1].srset; ;
break;}
case 136:
-#line 715 "cgrammar.y"
+#line 720 "cgrammar.y"
{ yyval.srset = sRefSet_new (); ;
break;}
case 137:
-#line 718 "cgrammar.y"
+#line 723 "cgrammar.y"
{ yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
break;}
case 138:
-#line 719 "cgrammar.y"
+#line 724 "cgrammar.y"
{ yyval.sr = fixModifiesId (yyvsp[0].cname); ;
break;}
case 139:
-#line 720 "cgrammar.y"
+#line 725 "cgrammar.y"
{ yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
break;}
case 140:
-#line 721 "cgrammar.y"
+#line 726 "cgrammar.y"
{ yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
break;}
case 141:
-#line 722 "cgrammar.y"
+#line 727 "cgrammar.y"
{ yyval.sr = modListPointer (yyvsp[0].sr); ;
break;}
case 142:
-#line 723 "cgrammar.y"
+#line 728 "cgrammar.y"
{ yyval.sr = yyvsp[-1].sr; ;
break;}
case 143:
-#line 724 "cgrammar.y"
+#line 729 "cgrammar.y"
{ yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
break;}
case 144:
-#line 725 "cgrammar.y"
+#line 730 "cgrammar.y"
{ yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
break;}
case 145:
-#line 729 "cgrammar.y"
+#line 734 "cgrammar.y"
{ yyval.sr = yyvsp[0].sr; ;
break;}
case 146:
-#line 730 "cgrammar.y"
+#line 735 "cgrammar.y"
{ yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
break;}
case 147:
-#line 734 "cgrammar.y"
+#line 739 "cgrammar.y"
{ yyval.srset = sRefSet_single (yyvsp[0].sr); ;
break;}
case 148:
-#line 735 "cgrammar.y"
+#line 740 "cgrammar.y"
{ yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
break;}
case 149:
-#line 739 "cgrammar.y"
+#line 744 "cgrammar.y"
{ yyval.sr = checkStateClausesId (yyvsp[0].entry); ;
break;}
case 150:
-#line 741 "cgrammar.y"
+#line 746 "cgrammar.y"
{ yyval.sr = fixStateClausesId (yyvsp[0].cname); ;
break;}
case 151:
-#line 742 "cgrammar.y"
+#line 747 "cgrammar.y"
{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
break;}
case 152:
-#line 743 "cgrammar.y"
+#line 748 "cgrammar.y"
{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
break;}
case 153:
-#line 744 "cgrammar.y"
+#line 749 "cgrammar.y"
{ yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
break;}
case 154:
-#line 745 "cgrammar.y"
+#line 750 "cgrammar.y"
{ yyval.sr = yyvsp[-1].sr; ;
break;}
case 155:
-#line 746 "cgrammar.y"
+#line 751 "cgrammar.y"
{ cstring_markOwned (yyvsp[0].cname);
yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
break;}
case 156:
-#line 748 "cgrammar.y"
+#line 753 "cgrammar.y"
{ cstring_markOwned (yyvsp[0].cname);
yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
break;}
case 157:
-#line 752 "cgrammar.y"
+#line 757 "cgrammar.y"
{ yyval.srset = sRefSet_undefined ;
break;}
case 159:
-#line 757 "cgrammar.y"
+#line 762 "cgrammar.y"
{ if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
else { yyval.srset = sRefSet_undefined; }
;
break;}
case 160:
-#line 761 "cgrammar.y"
+#line 766 "cgrammar.y"
{ if (sRef_isValid (yyvsp[0].sr))
{
yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
;
break;}
case 161:
-#line 772 "cgrammar.y"
+#line 777 "cgrammar.y"
{ yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
break;}
case 162:
-#line 773 "cgrammar.y"
+#line 778 "cgrammar.y"
{ yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
break;}
case 164:
-#line 775 "cgrammar.y"
+#line 780 "cgrammar.y"
{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
break;}
case 165:
-#line 776 "cgrammar.y"
+#line 781 "cgrammar.y"
{ yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
break;}
case 166:
-#line 777 "cgrammar.y"
+#line 782 "cgrammar.y"
{ yyval.expr = exprNode_makeError (); ;
break;}
case 168:
-#line 781 "cgrammar.y"
+#line 786 "cgrammar.y"
{ yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
break;}
case 169:
-#line 782 "cgrammar.y"
+#line 787 "cgrammar.y"
{ yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
break;}
case 170:
-#line 783 "cgrammar.y"
+#line 788 "cgrammar.y"
{ yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
break;}
case 171:
-#line 784 "cgrammar.y"
+#line 789 "cgrammar.y"
{ yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
break;}
case 172:
-#line 785 "cgrammar.y"
+#line 790 "cgrammar.y"
{ yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
break;}
case 173:
-#line 786 "cgrammar.y"
+#line 791 "cgrammar.y"
{ yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
break;}
case 174:
-#line 787 "cgrammar.y"
+#line 792 "cgrammar.y"
{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
break;}
case 175:
-#line 788 "cgrammar.y"
+#line 793 "cgrammar.y"
{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
break;}
case 176:
-#line 791 "cgrammar.y"
+#line 796 "cgrammar.y"
{ yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
break;}
case 177:
-#line 792 "cgrammar.y"
+#line 797 "cgrammar.y"
{ yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
break;}
case 179:
-#line 796 "cgrammar.y"
+#line 801 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 180:
-#line 797 "cgrammar.y"
+#line 802 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 181:
-#line 798 "cgrammar.y"
+#line 803 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 182:
-#line 799 "cgrammar.y"
+#line 804 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 183:
-#line 800 "cgrammar.y"
+#line 805 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 184:
-#line 801 "cgrammar.y"
+#line 806 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 185:
-#line 802 "cgrammar.y"
+#line 807 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 186:
-#line 803 "cgrammar.y"
+#line 808 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 187:
-#line 804 "cgrammar.y"
+#line 809 "cgrammar.y"
{ yyval.expr = yyvsp[0].expr; ;
break;}
case 188:
-#line 805 "cgrammar.y"
+#line 810 "cgrammar.y"
{ yyval.expr = yyvsp[0].expr; ;
break;}
case 189:
-#line 808 "cgrammar.y"
+#line 813 "cgrammar.y"
{ yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
break;}
case 190:
-#line 809 "cgrammar.y"
+#line 814 "cgrammar.y"
{ yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
break;}
case 191:
-#line 813 "cgrammar.y"
+#line 818 "cgrammar.y"
{ yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
break;}
case 192:
-#line 816 "cgrammar.y"
+#line 821 "cgrammar.y"
{ context_setProtectVars (); ;
break;}
case 193:
-#line 817 "cgrammar.y"
+#line 822 "cgrammar.y"
{ context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
break;}
case 194:
-#line 820 "cgrammar.y"
+#line 825 "cgrammar.y"
{ yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
break;}
case 195:
-#line 821 "cgrammar.y"
+#line 826 "cgrammar.y"
{ yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
break;}
case 196:
-#line 822 "cgrammar.y"
+#line 827 "cgrammar.y"
{ yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
break;}
case 197:
-#line 823 "cgrammar.y"
+#line 828 "cgrammar.y"
{ yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
break;}
case 199:
-#line 828 "cgrammar.y"
+#line 833 "cgrammar.y"
{ yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
break;}
case 201:
-#line 832 "cgrammar.y"
+#line 837 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 202:
-#line 833 "cgrammar.y"
+#line 838 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 203:
-#line 834 "cgrammar.y"
+#line 839 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 205:
-#line 838 "cgrammar.y"
+#line 843 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 206:
-#line 839 "cgrammar.y"
+#line 844 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 208:
-#line 843 "cgrammar.y"
+#line 848 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 209:
-#line 844 "cgrammar.y"
+#line 849 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 211:
-#line 848 "cgrammar.y"
+#line 853 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 212:
-#line 849 "cgrammar.y"
+#line 854 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 213:
-#line 850 "cgrammar.y"
+#line 855 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 214:
-#line 851 "cgrammar.y"
+#line 856 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 216:
-#line 855 "cgrammar.y"
+#line 860 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 217:
-#line 856 "cgrammar.y"
+#line 861 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 219:
-#line 860 "cgrammar.y"
+#line 865 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 221:
-#line 864 "cgrammar.y"
+#line 869 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 223:
-#line 869 "cgrammar.y"
+#line 874 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 225:
-#line 874 "cgrammar.y"
+#line 879 "cgrammar.y"
{ exprNode_produceGuards (yyvsp[-1].expr);
context_enterAndClause (yyvsp[-1].expr);
;
break;}
case 226:
-#line 878 "cgrammar.y"
+#line 883 "cgrammar.y"
{
yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
context_exitAndClause (yyval.expr, yyvsp[0].expr);
;
break;}
case 228:
-#line 886 "cgrammar.y"
+#line 891 "cgrammar.y"
{
exprNode_produceGuards (yyvsp[-1].expr);
context_enterOrClause (yyvsp[-1].expr);
;
break;}
case 229:
-#line 891 "cgrammar.y"
+#line 896 "cgrammar.y"
{
yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
context_exitOrClause (yyval.expr, yyvsp[0].expr);
;
break;}
case 231:
-#line 898 "cgrammar.y"
+#line 903 "cgrammar.y"
{ exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
break;}
case 232:
-#line 899 "cgrammar.y"
+#line 904 "cgrammar.y"
{ context_enterFalseClause (yyvsp[-4].expr); ;
break;}
case 233:
-#line 900 "cgrammar.y"
+#line 905 "cgrammar.y"
{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
break;}
case 235:
-#line 904 "cgrammar.y"
+#line 909 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 236:
-#line 905 "cgrammar.y"
+#line 910 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 237:
-#line 906 "cgrammar.y"
+#line 911 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 238:
-#line 907 "cgrammar.y"
+#line 912 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 239:
-#line 908 "cgrammar.y"
+#line 913 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 240:
-#line 909 "cgrammar.y"
+#line 914 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 241:
-#line 910 "cgrammar.y"
+#line 915 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 242:
-#line 911 "cgrammar.y"
+#line 916 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 243:
-#line 912 "cgrammar.y"
+#line 917 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 244:
-#line 913 "cgrammar.y"
+#line 918 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 245:
-#line 914 "cgrammar.y"
+#line 919 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 247:
-#line 918 "cgrammar.y"
+#line 923 "cgrammar.y"
{ yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
break;}
case 248:
-#line 921 "cgrammar.y"
+#line 926 "cgrammar.y"
{ yyval.expr = exprNode_undefined; ;
break;}
case 251:
-#line 930 "cgrammar.y"
+#line 935 "cgrammar.y"
{ yyval.expr = yyvsp[0].expr; ;
break;}
case 252:
-#line 931 "cgrammar.y"
+#line 936 "cgrammar.y"
{ doVaDcl (); yyval.expr = exprNode_makeError (); ;
break;}
case 253:
-#line 932 "cgrammar.y"
+#line 937 "cgrammar.y"
{ yyval.expr = exprNode_makeError (); ;
break;}
case 254:
-#line 936 "cgrammar.y"
+#line 941 "cgrammar.y"
{ yyval.expr = exprNode_makeError (); ;
break;}
case 255:
-#line 950 "cgrammar.y"
+#line 955 "cgrammar.y"
{
setProcessingVars (yyvsp[-3].qtyp);
processNamedDecl (yyvsp[-1].ntyp);
;
break;}
case 256:
-#line 955 "cgrammar.y"
+#line 960 "cgrammar.y"
{
unsetProcessingVars ();
yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-6].ntyp);
;
break;}
case 257:
-#line 961 "cgrammar.y"
+#line 966 "cgrammar.y"
{ setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ;
break;}
case 258:
-#line 963 "cgrammar.y"
+#line 968 "cgrammar.y"
{ yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
unsetProcessingVars ();
;
break;}
case 259:
-#line 969 "cgrammar.y"
+#line 974 "cgrammar.y"
{
processNamedDecl (yyvsp[-1].ntyp);
yyval.expr = exprNode_makeEmptyInitialization (yyvsp[-1].ntyp);
;
break;}
case 260:
-#line 973 "cgrammar.y"
+#line 978 "cgrammar.y"
{ processNamedDecl (yyvsp[-2].ntyp); ;
break;}
case 261:
-#line 974 "cgrammar.y"
+#line 979 "cgrammar.y"
{ yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
break;}
case 262:
-#line 977 "cgrammar.y"
+#line 982 "cgrammar.y"
{ setProcessingTypedef (yyvsp[0].qtyp); ;
break;}
case 263:
-#line 979 "cgrammar.y"
+#line 984 "cgrammar.y"
{ clabstract_declareType (yyvsp[-3].exprlist, yyvsp[-1].warnclause); ;
break;}
case 264:
-#line 980 "cgrammar.y"
+#line 985 "cgrammar.y"
{ /* in the ANSI grammar, semantics unclear */ ;
break;}
case 265:
-#line 981 "cgrammar.y"
+#line 986 "cgrammar.y"
{ /* in the ANSI grammar, semantics unclear */ ;
break;}
case 266:
-#line 984 "cgrammar.y"
+#line 989 "cgrammar.y"
{ g_expectingTypeName = TRUE; ;
break;}
case 267:
-#line 987 "cgrammar.y"
+#line 992 "cgrammar.y"
{ g_expectingTypeName = TRUE; context_pushLoc (); ;
break;}
case 268:
-#line 990 "cgrammar.y"
+#line 995 "cgrammar.y"
{ yyval.exprlist = yyvsp[-1].exprlist; ;
break;}
case 269:
-#line 993 "cgrammar.y"
+#line 998 "cgrammar.y"
{ yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
break;}
case 270:
-#line 994 "cgrammar.y"
+#line 999 "cgrammar.y"
{ yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
break;}
case 271:
-#line 997 "cgrammar.y"
+#line 1002 "cgrammar.y"
{ yyval.expr = exprNode_makeError (); ;
break;}
case 272:
-#line 998 "cgrammar.y"
+#line 1003 "cgrammar.y"
{ yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
break;}
case 274:
-#line 1002 "cgrammar.y"
+#line 1007 "cgrammar.y"
{ yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].exprlist); ;
break;}
case 275:
-#line 1003 "cgrammar.y"
+#line 1008 "cgrammar.y"
{ yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].exprlist); ;
break;}
case 276:
-#line 1008 "cgrammar.y"
+#line 1013 "cgrammar.y"
{ yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
break;}
case 277:
-#line 1010 "cgrammar.y"
+#line 1015 "cgrammar.y"
{ yyval.exprlist = exprNodeList_push (yyvsp[-2].exprlist, yyvsp[0].expr); ;
break;}
case 278:
-#line 1018 "cgrammar.y"
+#line 1023 "cgrammar.y"
{ setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
break;}
case 279:
-#line 1019 "cgrammar.y"
+#line 1024 "cgrammar.y"
{ yyval.typequal = qual_createInline (); ;
break;}
case 280:
-#line 1020 "cgrammar.y"
+#line 1025 "cgrammar.y"
{ setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
break;}
case 281:
-#line 1021 "cgrammar.y"
+#line 1026 "cgrammar.y"
{ yyval.typequal = qual_createAuto (); ;
break;}
case 282:
-#line 1022 "cgrammar.y"
+#line 1027 "cgrammar.y"
{ yyval.typequal = qual_createRegister (); ;
break;}
case 283:
-#line 1025 "cgrammar.y"
+#line 1030 "cgrammar.y"
{ yyval.typequal = qual_createNullTerminated (); ;
break;}
case 284:
-#line 1028 "cgrammar.y"
+#line 1033 "cgrammar.y"
{ yyval.stateclause = yyvsp[-1].stateclause; ;
break;}
case 285:
-#line 1032 "cgrammar.y"
+#line 1037 "cgrammar.y"
{
context_setProtectVars ();
enterParamsTemp ();
;
break;}
case 286:
-#line 1038 "cgrammar.y"
+#line 1043 "cgrammar.y"
{
exitParamsTemp ();
sRef_clearGlobalScopeSafe ();
;
break;}
case 287:
-#line 1046 "cgrammar.y"
+#line 1051 "cgrammar.y"
{ yyval.funcclause = yyvsp[-1].funcclause; ;
break;}
case 288:
-#line 1049 "cgrammar.y"
+#line 1054 "cgrammar.y"
{ yyval.tok = yyvsp[-1].tok; context_enterFunctionHeader (); ;
break;}
case 289:
-#line 1053 "cgrammar.y"
+#line 1058 "cgrammar.y"
{
context_exitFunctionHeader ();
context_setProtectVars ();
;
break;}
case 290:
-#line 1060 "cgrammar.y"
+#line 1065 "cgrammar.y"
{
exitParamsTemp ();
sRef_clearGlobalScopeSafe ();
;
break;}
case 291:
-#line 1067 "cgrammar.y"
+#line 1072 "cgrammar.y"
{
context_setProtectVars ();
enterParamsTemp ();
;
break;}
case 292:
-#line 1073 "cgrammar.y"
+#line 1078 "cgrammar.y"
{
context_exitFunctionHeader ();
exitParamsTemp ();
;
break;}
case 293:
-#line 1097 "cgrammar.y"
+#line 1102 "cgrammar.y"
{ yyval.fcnconstraint = functionConstraint_createBufferConstraint (yyvsp[0].conL); ;
break;}
case 294:
-#line 1098 "cgrammar.y"
+#line 1103 "cgrammar.y"
{ yyval.fcnconstraint = functionConstraint_createMetaStateConstraint (yyvsp[0].msconstraint); DPRINTF (("Made constraint: %s", functionConstraint_unparse (yyval.fcnconstraint))); ;
break;}
case 295:
-#line 1101 "cgrammar.y"
+#line 1106 "cgrammar.y"
{ yyval.typequal = qual_createExits (); ;
break;}
case 296:
-#line 1102 "cgrammar.y"
+#line 1107 "cgrammar.y"
{ yyval.typequal = qual_createMayExit (); ;
break;}
case 297:
-#line 1103 "cgrammar.y"
+#line 1108 "cgrammar.y"
{ yyval.typequal = qual_createTrueExit (); ;
break;}
case 298:
-#line 1104 "cgrammar.y"
+#line 1109 "cgrammar.y"
{ yyval.typequal = qual_createFalseExit (); ;
break;}
case 299:
-#line 1105 "cgrammar.y"
+#line 1110 "cgrammar.y"
{ yyval.typequal = qual_createNeverExit (); ;
break;}
case 300:
-#line 1108 "cgrammar.y"
+#line 1113 "cgrammar.y"
{ yyval.typequal = qual_createChecked (); ;
break;}
case 301:
-#line 1109 "cgrammar.y"
+#line 1114 "cgrammar.y"
{ yyval.typequal = qual_createCheckMod (); ;
break;}
case 302:
-#line 1110 "cgrammar.y"
+#line 1115 "cgrammar.y"
{ yyval.typequal = qual_createUnchecked (); ;
break;}
case 303:
-#line 1111 "cgrammar.y"
+#line 1116 "cgrammar.y"
{ yyval.typequal = qual_createCheckedStrict (); ;
break;}
case 304:
-#line 1114 "cgrammar.y"
+#line 1119 "cgrammar.y"
{ yyval.typequal = qual_createOwned (); ;
break;}
case 305:
-#line 1115 "cgrammar.y"
+#line 1120 "cgrammar.y"
{ yyval.typequal = qual_createDependent (); ;
break;}
case 306:
-#line 1116 "cgrammar.y"
+#line 1121 "cgrammar.y"
{ yyval.typequal = qual_createYield (); ;
break;}
case 307:
-#line 1117 "cgrammar.y"
+#line 1122 "cgrammar.y"
{ yyval.typequal = qual_createTemp (); ;
break;}
case 308:
-#line 1118 "cgrammar.y"
+#line 1123 "cgrammar.y"
{ yyval.typequal = qual_createOnly (); ;
break;}
case 309:
-#line 1119 "cgrammar.y"
+#line 1124 "cgrammar.y"
{ yyval.typequal = qual_createKeep (); ;
break;}
case 310:
-#line 1120 "cgrammar.y"
+#line 1125 "cgrammar.y"
{ yyval.typequal = qual_createKept (); ;
break;}
case 311:
-#line 1121 "cgrammar.y"
+#line 1126 "cgrammar.y"
{ yyval.typequal = qual_createShared (); ;
break;}
case 312:
-#line 1122 "cgrammar.y"
+#line 1127 "cgrammar.y"
{ yyval.typequal = qual_createUnique (); ;
break;}
case 313:
-#line 1123 "cgrammar.y"
+#line 1128 "cgrammar.y"
{ yyval.typequal = qual_createNull (); ;
break;}
case 314:
-#line 1124 "cgrammar.y"
+#line 1129 "cgrammar.y"
{ yyval.typequal = qual_createIsNull (); ;
break;}
case 315:
-#line 1125 "cgrammar.y"
+#line 1130 "cgrammar.y"
{ yyval.typequal = qual_createRelNull (); ;
break;}
case 316:
-#line 1126 "cgrammar.y"
+#line 1131 "cgrammar.y"
{ yyval.typequal = qual_createNotNull (); ;
break;}
case 317:
-#line 1127 "cgrammar.y"
+#line 1132 "cgrammar.y"
{ yyval.typequal = qual_createExposed (); ;
break;}
case 318:
-#line 1128 "cgrammar.y"
+#line 1133 "cgrammar.y"
{ yyval.typequal = qual_createObserver (); ;
break;}
case 319:
-#line 1129 "cgrammar.y"
+#line 1134 "cgrammar.y"
{ yyval.typequal = qual_createNullTerminated (); ;
break;}
case 320:
-#line 1130 "cgrammar.y"
+#line 1135 "cgrammar.y"
{ yyval.typequal = qual_createMetaState (yyvsp[0].annotation); ;
break;}
case 321:
-#line 1134 "cgrammar.y"
+#line 1139 "cgrammar.y"
{ yyval.typequal = qual_createReturned (); ;
break;}
case 322:
-#line 1135 "cgrammar.y"
+#line 1140 "cgrammar.y"
{ yyval.typequal = qual_createSef (); ;
break;}
case 323:
-#line 1138 "cgrammar.y"
+#line 1143 "cgrammar.y"
{ yyval.typequal = qual_createUnused (); ;
break;}
case 324:
-#line 1139 "cgrammar.y"
+#line 1144 "cgrammar.y"
{ yyval.typequal = qual_createExternal (); ;
break;}
case 325:
-#line 1142 "cgrammar.y"
+#line 1147 "cgrammar.y"
{ yyval.typequal = qual_createTrueNull (); ;
break;}
case 326:
-#line 1143 "cgrammar.y"
+#line 1148 "cgrammar.y"
{ yyval.typequal = qual_createFalseNull (); ;
break;}
case 327:
-#line 1146 "cgrammar.y"
+#line 1151 "cgrammar.y"
{ yyval.typequal = qual_createAbstract (); ;
break;}
case 328:
-#line 1147 "cgrammar.y"
+#line 1152 "cgrammar.y"
{ yyval.typequal = qual_createConcrete (); ;
break;}
case 329:
-#line 1148 "cgrammar.y"
+#line 1153 "cgrammar.y"
{ yyval.typequal = qual_createMutable (); ;
break;}
case 330:
-#line 1149 "cgrammar.y"
+#line 1154 "cgrammar.y"
{ yyval.typequal = qual_createImmutable (); ;
break;}
case 331:
-#line 1152 "cgrammar.y"
+#line 1157 "cgrammar.y"
{ yyval.typequal = qual_createRefCounted (); ;
break;}
case 332:
-#line 1153 "cgrammar.y"
+#line 1158 "cgrammar.y"
{ yyval.typequal = qual_createRefs (); ;
break;}
case 333:
-#line 1154 "cgrammar.y"
+#line 1159 "cgrammar.y"
{ yyval.typequal = qual_createKillRef (); ;
break;}
case 334:
-#line 1155 "cgrammar.y"
+#line 1160 "cgrammar.y"
{ yyval.typequal = qual_createRelDef (); ;
break;}
case 335:
-#line 1156 "cgrammar.y"
+#line 1161 "cgrammar.y"
{ yyval.typequal = qual_createNewRef (); ;
break;}
case 336:
-#line 1157 "cgrammar.y"
+#line 1162 "cgrammar.y"
{ yyval.typequal = qual_createTempRef (); ;
break;}
case 337:
-#line 1160 "cgrammar.y"
+#line 1165 "cgrammar.y"
{ yyval.typequal = qual_createShort (); ;
break;}
case 338:
-#line 1161 "cgrammar.y"
+#line 1166 "cgrammar.y"
{ yyval.typequal = qual_createLong (); ;
break;}
case 339:
-#line 1162 "cgrammar.y"
+#line 1167 "cgrammar.y"
{ yyval.typequal = qual_createSigned (); ;
break;}
case 340:
-#line 1163 "cgrammar.y"
+#line 1168 "cgrammar.y"
{ yyval.typequal = qual_createUnsigned (); ;
break;}
case 341:
-#line 1166 "cgrammar.y"
+#line 1171 "cgrammar.y"
{ yyval.typequal = qual_createOut (); ;
break;}
case 342:
-#line 1167 "cgrammar.y"
+#line 1172 "cgrammar.y"
{ yyval.typequal = qual_createIn (); ;
break;}
case 343:
-#line 1168 "cgrammar.y"
+#line 1173 "cgrammar.y"
{ yyval.typequal = qual_createPartial (); ;
break;}
case 344:
-#line 1169 "cgrammar.y"
+#line 1174 "cgrammar.y"
{ yyval.typequal = qual_createSpecial (); ;
break;}
case 345:
-#line 1172 "cgrammar.y"
+#line 1177 "cgrammar.y"
{ yyval.typequal = qual_createConst (); ;
break;}
case 346:
-#line 1173 "cgrammar.y"
+#line 1178 "cgrammar.y"
{ yyval.typequal = qual_createVolatile (); ;
break;}
case 347:
-#line 1174 "cgrammar.y"
+#line 1179 "cgrammar.y"
{ yyval.typequal = yyvsp[-1].typequal; ;
break;}
case 348:
-#line 1175 "cgrammar.y"
+#line 1180 "cgrammar.y"
{ yyval.typequal = yyvsp[-1].typequal; ;
break;}
case 349:
-#line 1176 "cgrammar.y"
+#line 1181 "cgrammar.y"
{ yyval.typequal = yyvsp[-1].typequal; ;
break;}
case 350:
-#line 1177 "cgrammar.y"
+#line 1182 "cgrammar.y"
{ yyval.typequal = yyvsp[-1].typequal; ;
break;}
case 351:
-#line 1178 "cgrammar.y"
+#line 1183 "cgrammar.y"
{ yyval.typequal = yyvsp[-1].typequal; ;
break;}
case 352:
-#line 1179 "cgrammar.y"
+#line 1184 "cgrammar.y"
{ yyval.typequal = yyvsp[-1].typequal; ;
break;}
case 353:
-#line 1180 "cgrammar.y"
+#line 1185 "cgrammar.y"
{ yyval.typequal = yyvsp[-1].typequal; ;
break;}
case 354:
-#line 1181 "cgrammar.y"
+#line 1186 "cgrammar.y"
{ yyval.typequal = yyvsp[-1].typequal; ;
break;}
case 355:
-#line 1182 "cgrammar.y"
+#line 1187 "cgrammar.y"
{ yyval.typequal = yyvsp[-1].typequal; ;
break;}
case 362:
-#line 1195 "cgrammar.y"
+#line 1200 "cgrammar.y"
{ yyval.ctyp = ctype_unknown; ;
break;}
case 363:
-#line 1196 "cgrammar.y"
+#line 1201 "cgrammar.y"
{ yyval.ctyp = ctype_anyintegral; ;
break;}
case 364:
-#line 1197 "cgrammar.y"
+#line 1202 "cgrammar.y"
{ yyval.ctyp = ctype_unsignedintegral; ;
break;}
case 365:
-#line 1198 "cgrammar.y"
+#line 1203 "cgrammar.y"
{ yyval.ctyp = ctype_signedintegral; ;
break;}
case 369:
-#line 1202 "cgrammar.y"
+#line 1207 "cgrammar.y"
{ yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
break;}
case 370:
-#line 1206 "cgrammar.y"
+#line 1211 "cgrammar.y"
{ yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
break;}
case 371:
-#line 1209 "cgrammar.y"
+#line 1214 "cgrammar.y"
{ yyval.qtyp = yyvsp[0].qtyp; ;
break;}
case 372:
-#line 1211 "cgrammar.y"
+#line 1216 "cgrammar.y"
{ yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
break;}
case 374:
-#line 1216 "cgrammar.y"
+#line 1221 "cgrammar.y"
{ yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
break;}
case 375:
-#line 1219 "cgrammar.y"
+#line 1224 "cgrammar.y"
{ yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
break;}
case 376:
-#line 1220 "cgrammar.y"
+#line 1225 "cgrammar.y"
{ yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
break;}
case 377:
-#line 1221 "cgrammar.y"
+#line 1226 "cgrammar.y"
{ yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
break;}
case 378:
-#line 1224 "cgrammar.y"
+#line 1229 "cgrammar.y"
{ yyval.qtyp = qtype_unknown (); ;
break;}
case 379:
-#line 1225 "cgrammar.y"
+#line 1230 "cgrammar.y"
{ yyval.qtyp = yyvsp[0].qtyp; ;
break;}
case 380:
-#line 1228 "cgrammar.y"
+#line 1233 "cgrammar.y"
{ sRef_setGlobalScopeSafe (); ;
break;}
case 381:
-#line 1230 "cgrammar.y"
+#line 1235 "cgrammar.y"
{ sRef_clearGlobalScopeSafe (); ;
break;}
case 382:
-#line 1232 "cgrammar.y"
+#line 1237 "cgrammar.y"
{ yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
break;}
case 383:
-#line 1233 "cgrammar.y"
+#line 1238 "cgrammar.y"
{ sRef_setGlobalScopeSafe (); ;
break;}
case 384:
-#line 1235 "cgrammar.y"
+#line 1240 "cgrammar.y"
{ sRef_clearGlobalScopeSafe (); ;
break;}
case 385:
-#line 1237 "cgrammar.y"
+#line 1242 "cgrammar.y"
{ yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
break;}
case 386:
-#line 1239 "cgrammar.y"
+#line 1244 "cgrammar.y"
{ yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
break;}
case 387:
-#line 1241 "cgrammar.y"
+#line 1246 "cgrammar.y"
{ yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
break;}
case 388:
-#line 1242 "cgrammar.y"
+#line 1247 "cgrammar.y"
{ sRef_setGlobalScopeSafe (); ;
break;}
case 389:
-#line 1244 "cgrammar.y"
+#line 1249 "cgrammar.y"
{ sRef_clearGlobalScopeSafe (); ;
break;}
case 390:
-#line 1246 "cgrammar.y"
+#line 1251 "cgrammar.y"
{ yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
break;}
case 391:
-#line 1247 "cgrammar.y"
+#line 1252 "cgrammar.y"
{ sRef_setGlobalScopeSafe (); ;
break;}
case 392:
-#line 1249 "cgrammar.y"
+#line 1254 "cgrammar.y"
{ sRef_clearGlobalScopeSafe (); ;
break;}
case 393:
-#line 1251 "cgrammar.y"
+#line 1256 "cgrammar.y"
{ yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
break;}
case 394:
-#line 1253 "cgrammar.y"
+#line 1258 "cgrammar.y"
{ yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
break;}
case 395:
-#line 1255 "cgrammar.y"
+#line 1260 "cgrammar.y"
{ yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
break;}
case 396:
-#line 1256 "cgrammar.y"
+#line 1261 "cgrammar.y"
{ yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
break;}
case 397:
-#line 1257 "cgrammar.y"
+#line 1262 "cgrammar.y"
{ yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
break;}
case 398:
-#line 1260 "cgrammar.y"
+#line 1265 "cgrammar.y"
{ g_expectingTypeName = FALSE; ;
break;}
case 400:
-#line 1264 "cgrammar.y"
+#line 1269 "cgrammar.y"
{ yyval.flist = uentryList_undefined; /* bogus! */ ;
break;}
case 401:
-#line 1265 "cgrammar.y"
+#line 1270 "cgrammar.y"
{ yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
break;}
case 402:
-#line 1269 "cgrammar.y"
+#line 1274 "cgrammar.y"
{ yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
break;}
case 403:
-#line 1271 "cgrammar.y"
+#line 1276 "cgrammar.y"
{ yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
break;}
case 404:
-#line 1275 "cgrammar.y"
+#line 1280 "cgrammar.y"
{ yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
break;}
case 405:
-#line 1277 "cgrammar.y"
+#line 1282 "cgrammar.y"
{ yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
break;}
case 406:
-#line 1280 "cgrammar.y"
+#line 1285 "cgrammar.y"
{ yyval.ntyp = yyvsp[0].ntyp; ;
break;}
case 407:
-#line 1281 "cgrammar.y"
+#line 1286 "cgrammar.y"
{ yyval.ntyp = idDecl_undefined; ;
break;}
case 408:
-#line 1282 "cgrammar.y"
+#line 1287 "cgrammar.y"
{ yyval.ntyp = yyvsp[-3].ntyp; ;
break;}
case 409:
-#line 1287 "cgrammar.y"
+#line 1292 "cgrammar.y"
{ yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
break;}
case 410:
-#line 1288 "cgrammar.y"
+#line 1293 "cgrammar.y"
{ context_pushLoc (); ;
break;}
case 411:
-#line 1289 "cgrammar.y"
+#line 1294 "cgrammar.y"
{ context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
break;}
case 412:
-#line 1290 "cgrammar.y"
+#line 1295 "cgrammar.y"
{ yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
break;}
case 413:
-#line 1294 "cgrammar.y"
+#line 1299 "cgrammar.y"
{ yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
break;}
case 414:
-#line 1296 "cgrammar.y"
+#line 1301 "cgrammar.y"
{ yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
break;}
case 416:
-#line 1301 "cgrammar.y"
+#line 1306 "cgrammar.y"
{ uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
usymtab_supGlobalEntry (ue);
yyval.cname = yyvsp[0].cname;
;
break;}
case 417:
-#line 1306 "cgrammar.y"
+#line 1311 "cgrammar.y"
{ uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
usymtab_supGlobalEntry (ue);
yyval.cname = yyvsp[-3].cname;
;
break;}
case 419:
-#line 1313 "cgrammar.y"
+#line 1318 "cgrammar.y"
{ yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
break;}
case 420:
-#line 1315 "cgrammar.y"
+#line 1320 "cgrammar.y"
{
qtype qt = qtype_unknown ();
;
break;}
case 421:
-#line 1322 "cgrammar.y"
+#line 1327 "cgrammar.y"
{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
break;}
case 423:
-#line 1327 "cgrammar.y"
+#line 1332 "cgrammar.y"
{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
break;}
case 424:
-#line 1330 "cgrammar.y"
+#line 1335 "cgrammar.y"
{ yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
break;}
case 425:
-#line 1331 "cgrammar.y"
+#line 1336 "cgrammar.y"
{ yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
break;}
case 426:
-#line 1334 "cgrammar.y"
+#line 1339 "cgrammar.y"
{ /* ignored for now */; ;
break;}
case 427:
-#line 1335 "cgrammar.y"
+#line 1340 "cgrammar.y"
{ ; ;
break;}
case 428:
-#line 1338 "cgrammar.y"
+#line 1343 "cgrammar.y"
{ ; ;
break;}
case 429:
-#line 1339 "cgrammar.y"
+#line 1344 "cgrammar.y"
{ ; ;
break;}
case 430:
-#line 1342 "cgrammar.y"
+#line 1347 "cgrammar.y"
{ yyval.count = 1; ;
break;}
case 431:
-#line 1343 "cgrammar.y"
+#line 1348 "cgrammar.y"
{ yyval.count = 1; ;
break;}
case 432:
-#line 1344 "cgrammar.y"
+#line 1349 "cgrammar.y"
{ yyval.count = 1 + yyvsp[0].count; ;
break;}
case 433:
-#line 1345 "cgrammar.y"
+#line 1350 "cgrammar.y"
{ yyval.count = 1 + yyvsp[0].count; ;
break;}
case 435:
-#line 1349 "cgrammar.y"
+#line 1354 "cgrammar.y"
{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
break;}
case 436:
-#line 1352 "cgrammar.y"
+#line 1357 "cgrammar.y"
{ yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
break;}
case 437:
-#line 1353 "cgrammar.y"
+#line 1358 "cgrammar.y"
{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
break;}
case 438:
-#line 1356 "cgrammar.y"
+#line 1361 "cgrammar.y"
{ yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
break;}
case 440:
-#line 1358 "cgrammar.y"
+#line 1363 "cgrammar.y"
{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
break;}
case 441:
-#line 1361 "cgrammar.y"
+#line 1366 "cgrammar.y"
{ storeLoc (); ;
break;}
case 442:
-#line 1361 "cgrammar.y"
+#line 1366 "cgrammar.y"
{ yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
break;}
case 443:
-#line 1362 "cgrammar.y"
+#line 1367 "cgrammar.y"
{ storeLoc (); ;
break;}
case 444:
-#line 1363 "cgrammar.y"
+#line 1368 "cgrammar.y"
{ yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
break;}
case 445:
-#line 1367 "cgrammar.y"
+#line 1372 "cgrammar.y"
{
if (isFlipOldStyle ())
{
;
break;}
case 446:
-#line 1379 "cgrammar.y"
+#line 1384 "cgrammar.y"
{
idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
;
break;}
case 448:
-#line 1395 "cgrammar.y"
+#line 1400 "cgrammar.y"
{ yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
break;}
case 449:
-#line 1398 "cgrammar.y"
+#line 1403 "cgrammar.y"
{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
break;}
case 451:
-#line 1400 "cgrammar.y"
+#line 1405 "cgrammar.y"
{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
break;}
case 452:
-#line 1403 "cgrammar.y"
+#line 1408 "cgrammar.y"
{ yyval.ctyp = ctype_unknown; ;
break;}
case 454:
-#line 1408 "cgrammar.y"
+#line 1413 "cgrammar.y"
{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
break;}
case 455:
-#line 1409 "cgrammar.y"
+#line 1414 "cgrammar.y"
{ yyval.ctyp = ctype_makeArray (ctype_unknown); ;
break;}
case 456:
-#line 1411 "cgrammar.y"
+#line 1416 "cgrammar.y"
{ yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
break;}
case 457:
-#line 1412 "cgrammar.y"
+#line 1417 "cgrammar.y"
{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
break;}
case 458:
-#line 1414 "cgrammar.y"
+#line 1419 "cgrammar.y"
{ yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
break;}
case 459:
-#line 1416 "cgrammar.y"
+#line 1421 "cgrammar.y"
{ yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
break;}
case 460:
-#line 1418 "cgrammar.y"
+#line 1423 "cgrammar.y"
{ yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
break;}
case 461:
-#line 1420 "cgrammar.y"
+#line 1425 "cgrammar.y"
{ yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
break;}
case 462:
-#line 1422 "cgrammar.y"
+#line 1427 "cgrammar.y"
{ yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
break;}
case 472:
-#line 1450 "cgrammar.y"
+#line 1455 "cgrammar.y"
{ yyval.expr = yyvsp[0].expr; ;
break;}
case 475:
-#line 1458 "cgrammar.y"
+#line 1463 "cgrammar.y"
{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
break;}
case 476:
-#line 1462 "cgrammar.y"
+#line 1467 "cgrammar.y"
{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
break;}
case 477:
-#line 1464 "cgrammar.y"
+#line 1469 "cgrammar.y"
{ yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
break;}
case 478:
-#line 1466 "cgrammar.y"
+#line 1471 "cgrammar.y"
{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
break;}
case 479:
-#line 1468 "cgrammar.y"
+#line 1473 "cgrammar.y"
{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
break;}
case 480:
-#line 1472 "cgrammar.y"
+#line 1477 "cgrammar.y"
{ context_setProtectVars (); ;
break;}
case 481:
-#line 1472 "cgrammar.y"
+#line 1477 "cgrammar.y"
{ context_sizeofReleaseVars (); ;
break;}
case 482:
-#line 1474 "cgrammar.y"
+#line 1479 "cgrammar.y"
{ yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
context_enterForClause (yyvsp[-5].expr); ;
break;}
case 483:
-#line 1479 "cgrammar.y"
+#line 1484 "cgrammar.y"
{ setProcessingIterVars (yyvsp[-2].entry); ;
break;}
case 484:
-#line 1481 "cgrammar.y"
+#line 1486 "cgrammar.y"
{ yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].exprlist); ;
break;}
case 485:
-#line 1482 "cgrammar.y"
+#line 1487 "cgrammar.y"
{ yyval.expr = exprNode_createId (yyvsp[0].entry); ;
break;}
case 489:
-#line 1488 "cgrammar.y"
+#line 1493 "cgrammar.y"
{ yyval.expr = yyvsp[-1].expr; DPRINTF (("def stmt: %s", exprNode_unparse (yyval.expr))); ;
break;}
case 497:
-#line 1496 "cgrammar.y"
+#line 1501 "cgrammar.y"
{ yyval.expr = yyvsp[-1].expr; ;
break;}
case 498:
-#line 1497 "cgrammar.y"
+#line 1502 "cgrammar.y"
{ yyval.expr = exprNode_makeError (); ;
break;}
case 499:
-#line 1501 "cgrammar.y"
+#line 1506 "cgrammar.y"
{ /* don't: context_exitTrueClause ($1, $2); */
yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
;
break;}
case 500:
-#line 1506 "cgrammar.y"
+#line 1511 "cgrammar.y"
{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
break;}
case 501:
-#line 1509 "cgrammar.y"
+#line 1514 "cgrammar.y"
{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
break;}
case 512:
-#line 1524 "cgrammar.y"
+#line 1529 "cgrammar.y"
{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
break;}
case 514:
-#line 1526 "cgrammar.y"
+#line 1531 "cgrammar.y"
{ yyval.expr = exprNode_makeError (); ;
break;}
case 515:
-#line 1529 "cgrammar.y"
+#line 1534 "cgrammar.y"
{ yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
break;}
case 516:
-#line 1530 "cgrammar.y"
+#line 1535 "cgrammar.y"
{ yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
break;}
case 517:
-#line 1536 "cgrammar.y"
+#line 1541 "cgrammar.y"
{ context_enterCaseClause (yyvsp[0].expr); ;
break;}
case 518:
-#line 1537 "cgrammar.y"
+#line 1542 "cgrammar.y"
{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
break;}
case 519:
-#line 1538 "cgrammar.y"
+#line 1543 "cgrammar.y"
{ context_enterCaseClause (yyvsp[0].expr); ;
break;}
case 520:
-#line 1539 "cgrammar.y"
+#line 1544 "cgrammar.y"
{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
break;}
case 521:
-#line 1542 "cgrammar.y"
+#line 1547 "cgrammar.y"
{ context_enterCaseClause (exprNode_undefined); ;
break;}
case 522:
-#line 1543 "cgrammar.y"
+#line 1548 "cgrammar.y"
{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
break;}
case 523:
-#line 1544 "cgrammar.y"
+#line 1549 "cgrammar.y"
{ context_enterCaseClause (exprNode_undefined); ;
break;}
case 524:
-#line 1545 "cgrammar.y"
+#line 1550 "cgrammar.y"
{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
break;}
case 525:
-#line 1548 "cgrammar.y"
+#line 1553 "cgrammar.y"
{ yyval.expr = yyvsp[-1].expr; ;
break;}
case 526:
-#line 1550 "cgrammar.y"
+#line 1555 "cgrammar.y"
{ yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
break;}
case 527:
-#line 1553 "cgrammar.y"
+#line 1558 "cgrammar.y"
{ yyval.expr = yyvsp[-1].expr; ;
break;}
case 528:
-#line 1556 "cgrammar.y"
+#line 1561 "cgrammar.y"
{ context_enterInnerContext (); ;
break;}
case 529:
-#line 1559 "cgrammar.y"
+#line 1564 "cgrammar.y"
{ context_exitInnerPlain (); ;
break;}
case 530:
-#line 1562 "cgrammar.y"
+#line 1567 "cgrammar.y"
{ context_enterStructInnerContext (); ;
break;}
case 531:
-#line 1565 "cgrammar.y"
+#line 1570 "cgrammar.y"
{ context_exitStructInnerContext (); ;
break;}
case 532:
-#line 1568 "cgrammar.y"
+#line 1573 "cgrammar.y"
{ context_exitInnerSafe (); ;
break;}
case 533:
-#line 1571 "cgrammar.y"
+#line 1576 "cgrammar.y"
{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
break;}
case 534:
-#line 1572 "cgrammar.y"
+#line 1577 "cgrammar.y"
{ yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
break;}
case 535:
-#line 1573 "cgrammar.y"
+#line 1578 "cgrammar.y"
{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
break;}
case 536:
-#line 1575 "cgrammar.y"
+#line 1580 "cgrammar.y"
{ yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
break;}
case 537:
-#line 1576 "cgrammar.y"
+#line 1581 "cgrammar.y"
{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
break;}
case 538:
-#line 1578 "cgrammar.y"
+#line 1583 "cgrammar.y"
{ yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
break;}
case 539:
-#line 1580 "cgrammar.y"
+#line 1585 "cgrammar.y"
{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
break;}
case 540:
-#line 1582 "cgrammar.y"
+#line 1587 "cgrammar.y"
{ yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
lltok_getLoc (yyvsp[-1].tok)));
;
break;}
case 541:
-#line 1588 "cgrammar.y"
+#line 1593 "cgrammar.y"
{ yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
break;}
case 542:
-#line 1592 "cgrammar.y"
+#line 1597 "cgrammar.y"
{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
break;}
case 543:
-#line 1594 "cgrammar.y"
+#line 1599 "cgrammar.y"
{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
break;}
case 544:
-#line 1596 "cgrammar.y"
+#line 1601 "cgrammar.y"
{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
break;}
case 545:
-#line 1598 "cgrammar.y"
+#line 1603 "cgrammar.y"
{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
break;}
case 547:
-#line 1602 "cgrammar.y"
+#line 1607 "cgrammar.y"
{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
break;}
case 548:
-#line 1605 "cgrammar.y"
+#line 1610 "cgrammar.y"
{ yyval.expr = yyvsp[0].expr; ;
break;}
case 549:
-#line 1606 "cgrammar.y"
+#line 1611 "cgrammar.y"
{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
break;}
case 550:
-#line 1609 "cgrammar.y"
+#line 1614 "cgrammar.y"
{ yyval.expr = yyvsp[0].expr; ;
break;}
case 551:
-#line 1610 "cgrammar.y"
+#line 1615 "cgrammar.y"
{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
break;}
case 552:
-#line 1613 "cgrammar.y"
+#line 1618 "cgrammar.y"
{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
break;}
case 553:
-#line 1614 "cgrammar.y"
+#line 1619 "cgrammar.y"
{ yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
break;}
case 554:
-#line 1617 "cgrammar.y"
+#line 1622 "cgrammar.y"
{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
break;}
case 555:
-#line 1618 "cgrammar.y"
+#line 1623 "cgrammar.y"
{ yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ;
break;}
case 556:
-#line 1619 "cgrammar.y"
+#line 1624 "cgrammar.y"
{ yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
break;}
case 557:
-#line 1623 "cgrammar.y"
+#line 1628 "cgrammar.y"
{ yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
break;}
case 558:
-#line 1631 "cgrammar.y"
+#line 1636 "cgrammar.y"
{
context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
;
break;}
case 559:
-#line 1635 "cgrammar.y"
+#line 1640 "cgrammar.y"
{ context_enterFalseClause (yyvsp[-2].expr); ;
break;}
case 560:
-#line 1636 "cgrammar.y"
+#line 1641 "cgrammar.y"
{
context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
;
break;}
case 561:
-#line 1640 "cgrammar.y"
+#line 1645 "cgrammar.y"
{ context_enterSwitch (yyvsp[0].expr); ;
break;}
case 562:
-#line 1641 "cgrammar.y"
+#line 1646 "cgrammar.y"
{ yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
break;}
case 563:
-#line 1645 "cgrammar.y"
+#line 1650 "cgrammar.y"
{ yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
break;}
case 564:
-#line 1649 "cgrammar.y"
+#line 1654 "cgrammar.y"
{ yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
break;}
case 565:
-#line 1652 "cgrammar.y"
+#line 1657 "cgrammar.y"
{ context_enterIterClause (); ;
break;}
case 566:
-#line 1653 "cgrammar.y"
+#line 1658 "cgrammar.y"
{ setProcessingIterVars (yyvsp[-3].entry); ;
break;}
case 567:
-#line 1656 "cgrammar.y"
+#line 1661 "cgrammar.y"
{
yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].exprlist, yyvsp[-2].expr, yyvsp[-1].entry);
;
break;}
case 568:
-#line 1662 "cgrammar.y"
+#line 1667 "cgrammar.y"
{ yyval.exprlist = exprNodeList_singleton (yyvsp[0].expr); ;
break;}
case 569:
-#line 1663 "cgrammar.y"
+#line 1668 "cgrammar.y"
{ nextIterParam (); ;
break;}
case 570:
-#line 1664 "cgrammar.y"
+#line 1669 "cgrammar.y"
{ yyval.exprlist = exprNodeList_push (yyvsp[-3].exprlist, yyvsp[0].expr); ;
break;}
case 571:
-#line 1667 "cgrammar.y"
+#line 1672 "cgrammar.y"
{ yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
break;}
case 572:
-#line 1668 "cgrammar.y"
+#line 1673 "cgrammar.y"
{ yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
break;}
case 573:
-#line 1669 "cgrammar.y"
+#line 1674 "cgrammar.y"
{ uentry ue = coerceIterId (yyvsp[0].cname);
if (uentry_isValid (ue))
;
break;}
case 574:
-#line 1680 "cgrammar.y"
+#line 1685 "cgrammar.y"
{ yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
break;}
case 576:
-#line 1688 "cgrammar.y"
+#line 1693 "cgrammar.y"
{ yyval.expr = exprNode_combineLiterals (yyvsp[-1].expr, yyvsp[0].expr); ;
break;}
case 578:
-#line 1692 "cgrammar.y"
+#line 1697 "cgrammar.y"
{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
break;}
case 580:
-#line 1696 "cgrammar.y"
+#line 1701 "cgrammar.y"
{ yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
break;}
case 581:
-#line 1697 "cgrammar.y"
+#line 1702 "cgrammar.y"
{ yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
break;}
case 582:
-#line 1698 "cgrammar.y"
+#line 1703 "cgrammar.y"
{ yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].exprlist); ;
break;}
case 583:
-#line 1700 "cgrammar.y"
+#line 1705 "cgrammar.y"
{ yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
break;}
case 584:
-#line 1701 "cgrammar.y"
+#line 1706 "cgrammar.y"
{ yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
break;}
case 585:
-#line 1702 "cgrammar.y"
+#line 1707 "cgrammar.y"
{ yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-2].tok, yyvsp[-1].cname); ;
break;}
case 586:
-#line 1703 "cgrammar.y"
+#line 1708 "cgrammar.y"
{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
break;}
case 587:
-#line 1704 "cgrammar.y"
+#line 1709 "cgrammar.y"
{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
break;}
case 589:
-#line 1708 "cgrammar.y"
+#line 1713 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 590:
-#line 1709 "cgrammar.y"
+#line 1714 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 591:
-#line 1710 "cgrammar.y"
+#line 1715 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 592:
-#line 1711 "cgrammar.y"
+#line 1716 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 593:
-#line 1712 "cgrammar.y"
+#line 1717 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 594:
-#line 1713 "cgrammar.y"
+#line 1718 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 595:
-#line 1714 "cgrammar.y"
+#line 1719 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 596:
-#line 1715 "cgrammar.y"
+#line 1720 "cgrammar.y"
{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 597:
-#line 1716 "cgrammar.y"
+#line 1721 "cgrammar.y"
{ yyval.expr = yyvsp[0].expr; ;
break;}
case 599:
-#line 1720 "cgrammar.y"
+#line 1725 "cgrammar.y"
{ yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
break;}
case 601:
-#line 1724 "cgrammar.y"
+#line 1729 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 602:
-#line 1725 "cgrammar.y"
+#line 1730 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 603:
-#line 1726 "cgrammar.y"
+#line 1731 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 605:
-#line 1730 "cgrammar.y"
+#line 1735 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 606:
-#line 1731 "cgrammar.y"
+#line 1736 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 608:
-#line 1735 "cgrammar.y"
+#line 1740 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 609:
-#line 1736 "cgrammar.y"
+#line 1741 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 611:
-#line 1740 "cgrammar.y"
+#line 1745 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 612:
-#line 1741 "cgrammar.y"
+#line 1746 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 613:
-#line 1742 "cgrammar.y"
+#line 1747 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 614:
-#line 1743 "cgrammar.y"
+#line 1748 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 616:
-#line 1747 "cgrammar.y"
+#line 1752 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 617:
-#line 1748 "cgrammar.y"
+#line 1753 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 619:
-#line 1752 "cgrammar.y"
+#line 1757 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 621:
-#line 1756 "cgrammar.y"
+#line 1761 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 623:
-#line 1761 "cgrammar.y"
+#line 1766 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 625:
-#line 1765 "cgrammar.y"
+#line 1770 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 627:
-#line 1769 "cgrammar.y"
+#line 1774 "cgrammar.y"
{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 629:
-#line 1773 "cgrammar.y"
+#line 1778 "cgrammar.y"
{ context_enterTrueClause (yyvsp[-1].expr); ;
break;}
case 630:
-#line 1774 "cgrammar.y"
+#line 1779 "cgrammar.y"
{ context_enterFalseClause (yyvsp[-4].expr); ;
break;}
case 631:
-#line 1775 "cgrammar.y"
+#line 1780 "cgrammar.y"
{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
break;}
case 633:
-#line 1779 "cgrammar.y"
+#line 1784 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 634:
-#line 1780 "cgrammar.y"
+#line 1785 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 635:
-#line 1781 "cgrammar.y"
+#line 1786 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 636:
-#line 1782 "cgrammar.y"
+#line 1787 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 637:
-#line 1783 "cgrammar.y"
+#line 1788 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 638:
-#line 1784 "cgrammar.y"
+#line 1789 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 639:
-#line 1785 "cgrammar.y"
+#line 1790 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 640:
-#line 1786 "cgrammar.y"
+#line 1791 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 641:
-#line 1787 "cgrammar.y"
+#line 1792 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 642:
-#line 1788 "cgrammar.y"
+#line 1793 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 643:
-#line 1789 "cgrammar.y"
+#line 1794 "cgrammar.y"
{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
break;}
case 644:
-#line 1792 "cgrammar.y"
+#line 1797 "cgrammar.y"
{ yyval.entry = yyvsp[0].entry; ;
break;}
case 645:
-#line 1793 "cgrammar.y"
+#line 1798 "cgrammar.y"
{ yyval.entry = uentry_undefined; ;
break;}
case 646:
-#line 1796 "cgrammar.y"
+#line 1801 "cgrammar.y"
{ context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
break;}
case 647:
-#line 1800 "cgrammar.y"
+#line 1805 "cgrammar.y"
{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
break;}
case 648:
-#line 1802 "cgrammar.y"
+#line 1807 "cgrammar.y"
{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
break;}
case 649:
-#line 1804 "cgrammar.y"
+#line 1809 "cgrammar.y"
{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
break;}
case 650:
-#line 1807 "cgrammar.y"
+#line 1812 "cgrammar.y"
{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
break;}
case 651:
-#line 1809 "cgrammar.y"
+#line 1814 "cgrammar.y"
{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ;
break;}
case 652:
-#line 1811 "cgrammar.y"
+#line 1816 "cgrammar.y"
{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
break;}
case 653:
-#line 1812 "cgrammar.y"
+#line 1817 "cgrammar.y"
{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
break;}
case 654:
-#line 1815 "cgrammar.y"
+#line 1820 "cgrammar.y"
{ yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
break;}
case 655:
-#line 1816 "cgrammar.y"
+#line 1821 "cgrammar.y"
{ yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
break;}
case 656:
-#line 1818 "cgrammar.y"
+#line 1823 "cgrammar.y"
{ yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
break;}
case 657:
-#line 1819 "cgrammar.y"
+#line 1824 "cgrammar.y"
{ yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
break;}
case 658:
-#line 1820 "cgrammar.y"
+#line 1825 "cgrammar.y"
{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
break;}
case 659:
-#line 1821 "cgrammar.y"
+#line 1826 "cgrammar.y"
{ yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
break;}
case 660:
-#line 1822 "cgrammar.y"
+#line 1827 "cgrammar.y"
{ yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
break;}
case 661:
-#line 1823 "cgrammar.y"
+#line 1828 "cgrammar.y"
{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
break;}
case 662:
-#line 1824 "cgrammar.y"
+#line 1829 "cgrammar.y"
{ yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
break;}
case 663:
-#line 1825 "cgrammar.y"
+#line 1830 "cgrammar.y"
{ yyval.expr = exprNode_return (yyvsp[-1].expr); ;
break;}
case 665:
-#line 1829 "cgrammar.y"
+#line 1834 "cgrammar.y"
{ ; ;
break;}
case 668:
-#line 1836 "cgrammar.y"
+#line 1841 "cgrammar.y"
{ yyval.cname = uentry_getName (yyvsp[0].entry); ;
break;}
case 669:
-#line 1837 "cgrammar.y"
+#line 1842 "cgrammar.y"
{ yyval.cname = uentry_getName (yyvsp[0].entry); ;
break;}
case 670:
-#line 1838 "cgrammar.y"
+#line 1843 "cgrammar.y"
{ yyval.cname = uentry_getName (yyvsp[0].entry); ;
break;}
case 671:
-#line 1839 "cgrammar.y"
+#line 1844 "cgrammar.y"
{ yyval.cname = yyvsp[0].cname; ;
break;}
case 673:
-#line 1843 "cgrammar.y"
+#line 1848 "cgrammar.y"
{ yyval.ctyp = ctype_unknown; ;
break;}
}
}
return 1;
}
-#line 1845 "cgrammar.y"
+#line 1850 "cgrammar.y"
/*@-redecl@*/ /*@-namechecks@*/
/*;-*-C-*-;
-** Copyright (c) Massachusetts Institute of Technology 1994-1998.
-** All Rights Reserved.
-** Unpublished rights reserved under the copyright laws of
-** the United States.
+** Splint - annotation-assisted static program checker
+** Copyright (C) 1994-2001 University of Virginia,
+** Massachusetts Institute of Technology
**
-** THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-** OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+** This program is free software; you can redistribute it and/or modify it
+** under the terms of the GNU General Public License as published by the
+** Free Software Foundation; either version 2 of the License, or (at your
+** option) any later version.
+**
+** This program is distributed in the hope that it will be useful, but
+** WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+** General Public License for more details.
+**
+** The GNU General Public License is available from http://www.gnu.org/ or
+** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+** MA 02111-1307, USA.
**
-** This code is distributed freely and may be used freely under the
-** following conditions:
-**
-** 1. This notice may not be removed or altered.
-**
-** 2. Works derived from this code are not distributed for
-** commercial gain without explicit permission from MIT
-** (for permission contact lclint-request@sds.lcs.mit.edu).
+** For information on lclint: lclint-request@cs.virginia.edu
+** To report a bug: lclint-bug@cs.virginia.edu
+** For more information: http://www.splint.org
*/
%{
/*
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** checking.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** clabstract.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** clause.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** clauseStack.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
cstring st = cstring_undefined;
cstring genExpr;
- st = message ("Unsatisfied ensures constraint condition:\nLCLint is unable to verify the constraint %q", constraint_printDeep (c) );
+ st = message ("Unsatisfied ensures constraint condition:\nSplint is unable to verify the constraint %q", constraint_printDeep (c) );
genExpr = exprNode_unparse (c->generatingExpr);
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
case XPR_COMMA:
t = exprData_getPairA(data);
ret = constraintExpr_makeExprNode(t);
- /*@i3434*/ /*I'm not sure if this is right. I'm adding a break to quite LCLint*/
+ /*@i3434*/ /* drl: I'm not sure if this is right. I'm adding a break to quiet Splint */
break;
default:
ret = oldconstraintExpr_makeTermExprNode (e);
/*@i22*/
- /*I think this is an LCLint bug */
+ /* drl: I think this is an Splint bug */
ret = constraintExpr_copy(c);
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2000 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** context.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** cpperror.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** cppexp.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** cpphash.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** cpplib.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** cppmain.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** cprim.c
/*;-*-C-*-;
-** Copyright (c) Massachusetts Institute of Technology 1994-1998.
-** All Rights Reserved.
-** Unpublished rights reserved under the copyright laws of
-** the United States.
+** Splint - annotation-assisted static program checker
+** Copyright (C) 1994-2001 University of Virginia,
+** Massachusetts Institute of Technology
**
-** THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-** OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+** This program is free software; you can redistribute it and/or modify it
+** under the terms of the GNU General Public License as published by the
+** Free Software Foundation; either version 2 of the License, or (at your
+** option) any later version.
+**
+** This program is distributed in the hope that it will be useful, but
+** WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+** General Public License for more details.
+**
+** The GNU General Public License is available from http://www.gnu.org/ or
+** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+** MA 02111-1307, USA.
**
-** This code is distributed freely and may be used freely under the
-** following conditions:
-**
-** 1. This notice may not be removed or altered.
+** For information on lclint: lclint-request@cs.virginia.edu
+** To report a bug: lclint-bug@cs.virginia.edu
+** For more information: http://www.splint.org
+*/
+/*
+** cscanner.l
**
-** 2. Works derived from this code are not distributed for
-** commercial gain without explicit permission from MIT
-** (for permission contact lclint-request@sds.lcs.mit.edu).
+** Flex lexer for C.
+** Based on a C lexer by Nate Osgood
+** from hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
*/
/*
- * Modified by Herbert 08/19/97:
- * - added #include for IBM's OS/2 compiler.
- * - fixed weird bug with lookup of tmp files (OS/2 and MSDOS only).
- */
-
+** Modified by Herbert 08/19/97:
+** - added #include for IBM's OS/2 compiler.
+** - fixed weird bug with lookup of tmp files (OS/2 and MSDOS only).
+*/
/*
- * Modified by Mike Smith
- * Corrected missing 'line' in scanf() calls in handleSpecial().
- * Without this, I get an error when LCLint hits a '#line' directive
- * in the pre-pre-processed source files. For safety, I have made these
- * conditional on OS2 and MSDOS because I don't understand why noone else
- * has seen this problem.
- *
- * Modified by Mike Smith, 4th June 1997
- * Finally resolved the #line problem. The scanf() calls have been fixed to
- * allow the following #line forms:-
- *
- * #line 123 "filename"
- * #line 123
- * # 123 "filename"
- * # 123
- *
- * The last two are generated by the GNU pre-processor, apparently
- */
+** Modified by Mike Smith
+** Corrected missing 'line' in scanf() calls in handleSpecial().
+** Without this, I get an error when LCLint hits a '#line' directive
+** in the pre-pre-processed source files. For safety, I have made these
+** conditional on OS2 and MSDOS because I don't understand why noone else
+** has seen this problem.
+**
+** Modified by Mike Smith, 4th June 1997
+** Finally resolved the #line problem. The scanf() calls have been fixed to
+** allow the following #line forms:-
+**
+** #line 123 "filename"
+** #line 123
+** # 123 "filename"
+** # 123
+**
+** The last two are generated by the GNU pre-processor, apparently
+*/
Digit [0-9]
Letter [a-zA-Z_$]
ULSuffix ({U}{L}|{L}{U})
%{
-/*
-** based on original C lexer by Nate Osgood
-** from hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
-**
-*/
-
# include "lclintMacros.nf"
# if defined(OS2) && defined(__IBMC__)
/* needed for isatty()... */
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** cstring.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** cstringList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** cstringSList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** cstringTable.c
}
/*
- ** evans 2001-03-24: new memory leak detected by LCLint
+ ** evans 2001-03-24: new memory leak detected by Splint
** after I fixed the checkCompletelyDestroyed.
*/
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** ctype.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** ctypeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** cvar.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** declaratorInvNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** declaratorNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** ekind.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** enumNameList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** enumNameList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** exprChecks.c
/* ConPrint (message ("Unable to resolve function constraints:\n%s", constraintList_printDetailed(body->requiresConstraints) ), g_currentloc);
- ConPrint (message ("LCLint has found function post conditions:\n%s", constraintList_printDetailed(body->ensuresConstraints) ), g_currentloc);
+ ConPrint (message ("Splint has found function post conditions:\n%s", constraintList_printDetailed(body->ensuresConstraints) ), g_currentloc);
printf ("The required constraints are:\n%s", constraintList_printDetailed(body->requiresConstraints) );
printf ("The ensures constraints are:\n%s", constraintList_printDetailed(body->ensuresConstraints) );
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** exprNode.c
/* added 7/11/2000 D.L */
/*@i223*/
- /*DRL 6/8/01 I decided to disable all LCLint Warning here since the code
+ /*DRL 6/8/01 I decided to disable all Splint warnings here since the code
probably needs a rewrite any way */
/*@i65234@*/
llfatalbug
(cstring_makeLiteral
("There has been a problem in the parser. This is believed to result "
- "from a problem with bison v. 1.25. Please try rebuidling LCLint "
+ "from a problem with bison v. 1.25. Please try rebuidling Splint "
"using the pre-compiled grammar files by commenting out the "
"BISON= line in the top-level Makefile."));
}
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** exprNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** exprNodeSList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** fcnNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** fileIdList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** fileLib.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** fileTable.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** fileloc.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** filelocList.c (from slist_template.c)
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** filelocStack.c (from slist_template.c)
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** flagMarker.c
void flagMarker_free (/*@only@*/ flagMarker c)
{
- fileloc_free (c->loc); /* evans 2001-03-24: LCLint caught this... */
+ fileloc_free (c->loc); /* evans 2001-03-24: Splint caught this... */
sfree (c);
}
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** flagMarkerList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** flagSpec.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** flags.c
{
llerror_flagWarning
(cstring_makeLiteral
- ("accessunspec flag is not supported by LCLint version 2.0 or "
- "later. It has been replaced by accessmodule, accessfile and "
+ ("accessunspec flag is no longer supported. It has been replaced by accessmodule, accessfile and "
"accessfunction to provide more precise control of accessibility "
"of representations. For more information, "
"see lclint -help accessmodule"));
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** functionClause.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** functionClauseList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** functionConstraint.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** general.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** genericTable.c
genericTable_addEntry (h, bucket->entries[j]);
}
- sfree (bucket->entries); /* evans 2001-03-24: LCLint caught this */
+ sfree (bucket->entries); /* evans 2001-03-24: Splint caught this */
sfree (bucket);
}
}
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** globSet.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** globals.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** globalsClause.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** guardSet.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2000 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** hashTable.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** idDecl.c
}
t->typ = q;
- /* LCLint thinks t->typ is kept. */
+ /* Splint thinks t->typ is kept. */
/*@-compmempass@*/ return t; /*@=compmempass@*/
}
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** idDeclList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** importNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** imports.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** initDeclNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** source.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** intSet.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** interfaceNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** lclctypes.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** lslinit.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** lcllib.c
# include "lclintMacros.nf"
# include "llbasic.h"
-
# include "osd.h"
# ifndef NOLCL
** Be careful, these lines must match loadLCDFile checking.
*/
- fprintf (f, ";;LCLint Dump: %s\n", cstring_toCharsSafe (fname));
+ fprintf (f, "%s %s\n", LIBRARY_MARKER, cstring_toCharsSafe (fname));
fprintf (f, ";;%s\n", LCL_VERSION);
fprintf (f, ";;lib:%d\n", (int) context_getLibrary ());
fprintf (f, ";;ctTable\n");
*/
if (reader_readLine (f, buf, BUFLEN) == NULL
- || !mstring_equalPrefix (buf, ";;LCLint Dump:"))
+ || !mstring_equalPrefix (buf, LIBRARY_MARKER))
{
- loadllmsg (message ("Load library %s is not in LCLint library format. Attempting "
+ loadllmsg (message ("Load library %s is not in Splint library format. Attempting "
"to continue without library.", name));
return FALSE;
}
{
if (!mstring_equalPrefix (buf, ";;"))
{
- loadllmsg (message ("Load library %s is not in LCLint library format. Attempting "
+ loadllmsg (message ("Load library %s is not in Splint library format. Attempting "
"to continue without library.", name));
return FALSE;
}
else if (mstring_equalPrefix (buf, ";;ctTable"))
{
- loadllmsg (message ("Load library %s is in obsolete LCLint library format. Attempting "
+ loadllmsg (message ("Load library %s is in obsolete Splint library format. Attempting "
"to continue anyway, but results may be incorrect. Rebuild "
"the library with this version of lclint.",
name));
{
float version = 0.0;
- if (sscanf (buf, ";;LCLint %f", &version) != 1)
+ if (sscanf (buf, ";;Splint %f", &version) != 1
+ && (sscanf (buf, ";;LCLint %f", &version) != 1))
{
- loadllmsg (message ("Load library %s is not in LCLint library format (missing version "
+ loadllmsg (message ("Load library %s is not in Splint library format (missing version "
"number). Attempting "
"to continue without library.", name));
return FALSE;
{
if (reader_readLine (f, buf, BUFLEN) == NULL)
{
- loadllmsg (message ("Load library %s is not in LCLint library "
+ loadllmsg (message ("Load library %s is not in Splint library "
"format (missing library code). Attempting "
"to continue without library.", name));
return FALSE;
if (sscanf (buf, ";;lib:%d", &lib) != 1)
{
- loadllmsg (message ("Load library %s is not in LCLint library "
+ loadllmsg (message ("Load library %s is not in Splint library "
"format (missing library code). Attempting "
"to continue without library.", name));
return FALSE;
}
else
{
- loadllmsg (message ("Load library %s is not in LCLint library format (missing lines). "
+ loadllmsg (message ("Load library %s is not in Splint library format (missing lines). "
"Attempting to continue without library.", name));
return FALSE;
}
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** lclscan.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** scanline.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** syntable.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** tokentable.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** letDeclNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** lh.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** llerror.c
if (numbugs > context_getBugsLimit () && fileloc_withinLines (lastbug, g_currentloc, 2))
{
- llfatalerror (message ("%q: Cannot recover from last bug. (If you really want LCLint to try to continue, use -bugslimit <n>.)",
+ llfatalerror (message ("%q: Cannot recover from last bug. (If you really want Splint to try to continue, use -bugslimit <n>.)",
fileloc_unparse (g_currentloc)));
}
#define LLT_SCANFLIKE 389
#define LLT_MESSAGELIKE 390
-#line 36 "llgrammar.y"
+#line 27 "llgrammar.y"
# include "lclintMacros.nf"
# endif
-#line 80 "llgrammar.y"
+#line 71 "llgrammar.y"
typedef union
{
ltoken ltok; /* a leaf is also an ltoken */
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 389, 390, 393, 394, 397, 398, 401, 402, 403, 406,
- 407, 410, 411, 412, 415, 421, 425, 427, 429, 431,
- 433, 435, 439, 443, 444, 447, 449, 453, 454, 457,
- 458, 461, 463, 465, 467, 471, 475, 477, 479, 483,
- 484, 487, 488, 489, 492, 493, 500, 502, 513, 515,
- 518, 522, 522, 523, 524, 524, 526, 527, 528, 529,
- 530, 530, 531, 534, 535, 536, 537, 539, 555, 557,
- 561, 562, 564, 567, 568, 571, 575, 577, 581, 583,
- 585, 587, 591, 592, 595, 597, 599, 602, 604, 607,
- 609, 612, 613, 614, 618, 619, 621, 623, 626, 628,
- 632, 633, 636, 638, 642, 643, 644, 647, 648, 651,
- 655, 656, 659, 660, 663, 664, 666, 669, 670, 673,
- 674, 677, 678, 679, 680, 683, 684, 687, 688, 689,
- 690, 691, 694, 695, 698, 699, 702, 703, 706, 707,
- 708, 711, 712, 715, 716, 717, 720, 721, 724, 729,
- 735, 743, 745, 747, 749, 753, 754, 757, 758, 759,
- 760, 761, 762, 763, 765, 769, 770, 771, 772, 775,
- 776, 779, 780, 783, 783, 792, 793, 797, 798, 801,
- 802, 805, 806, 807, 808, 809, 810, 811, 812, 813,
- 814, 822, 823, 828, 830, 836, 837, 838, 839, 840,
- 841, 842, 843, 844, 845, 846, 847, 848, 849, 850,
- 851, 852, 853, 854, 855, 856, 857, 858, 859, 860,
- 861, 862, 863, 864, 865, 866, 867, 868, 869, 870,
- 871, 874, 876, 878, 880, 882, 891, 892, 897, 898,
- 901, 903, 905, 907, 909, 911, 915, 916, 919, 920,
- 925, 928, 930, 934, 935, 938, 940, 944, 945, 955,
- 956, 959, 960, 961, 962, 963, 964, 967, 968, 969,
- 970, 971, 972, 981, 982, 983, 984, 985, 991, 992,
- 993, 1003, 1004, 1005, 1010, 1011, 1014, 1015, 1016, 1017,
- 1018, 1019, 1020, 1021, 1024, 1025, 1028, 1030, 1032, 1034,
- 1036, 1039, 1041, 1043, 1045, 1047, 1049, 1057, 1059, 1061,
- 1064, 1067, 1070, 1075, 1076, 1079, 1080, 1083, 1084, 1085,
- 1088, 1089, 1092, 1093, 1096, 1097, 1100, 1103, 1104, 1107,
- 1108, 1111, 1114, 1120, 1122, 1123, 1126, 1127, 1132, 1134,
- 1138, 1139, 1140, 1143, 1144, 1147, 1148, 1151, 1152, 1155,
- 1156, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1168, 1169,
- 1172, 1175, 1177, 1181, 1185, 1186, 1189, 1190, 1193, 1195,
- 1197, 1199, 1200, 1202, 1204, 1206, 1209, 1211, 1215, 1216,
- 1219, 1220, 1221, 1222, 1225, 1226, 1227, 1228, 1229, 1230,
- 1235, 1241, 1251, 1252, 1253, 1254, 1257, 1259, 1263, 1267,
- 1270, 1271, 1274, 1275, 1278, 1279, 1282, 1283, 1284, 1285,
- 1286, 1287, 1288
+ 380, 381, 384, 385, 388, 389, 392, 393, 394, 397,
+ 398, 401, 402, 403, 406, 412, 416, 418, 420, 422,
+ 424, 426, 430, 434, 435, 438, 440, 444, 445, 448,
+ 449, 452, 454, 456, 458, 462, 466, 468, 470, 474,
+ 475, 478, 479, 480, 483, 484, 491, 493, 504, 506,
+ 509, 513, 513, 514, 515, 515, 517, 518, 519, 520,
+ 521, 521, 522, 525, 526, 527, 528, 530, 546, 548,
+ 552, 553, 555, 558, 559, 562, 566, 568, 572, 574,
+ 576, 578, 582, 583, 586, 588, 590, 593, 595, 598,
+ 600, 603, 604, 605, 609, 610, 612, 614, 617, 619,
+ 623, 624, 627, 629, 633, 634, 635, 638, 639, 642,
+ 646, 647, 650, 651, 654, 655, 657, 660, 661, 664,
+ 665, 668, 669, 670, 671, 674, 675, 678, 679, 680,
+ 681, 682, 685, 686, 689, 690, 693, 694, 697, 698,
+ 699, 702, 703, 706, 707, 708, 711, 712, 715, 720,
+ 726, 734, 736, 738, 740, 744, 745, 748, 749, 750,
+ 751, 752, 753, 754, 756, 760, 761, 762, 763, 766,
+ 767, 770, 771, 774, 774, 783, 784, 788, 789, 792,
+ 793, 796, 797, 798, 799, 800, 801, 802, 803, 804,
+ 805, 813, 814, 819, 821, 827, 828, 829, 830, 831,
+ 832, 833, 834, 835, 836, 837, 838, 839, 840, 841,
+ 842, 843, 844, 845, 846, 847, 848, 849, 850, 851,
+ 852, 853, 854, 855, 856, 857, 858, 859, 860, 861,
+ 862, 865, 867, 869, 871, 873, 882, 883, 888, 889,
+ 892, 894, 896, 898, 900, 902, 906, 907, 910, 911,
+ 916, 919, 921, 925, 926, 929, 931, 935, 936, 946,
+ 947, 950, 951, 952, 953, 954, 955, 958, 959, 960,
+ 961, 962, 963, 972, 973, 974, 975, 976, 982, 983,
+ 984, 994, 995, 996, 1001, 1002, 1005, 1006, 1007, 1008,
+ 1009, 1010, 1011, 1012, 1015, 1016, 1019, 1021, 1023, 1025,
+ 1027, 1030, 1032, 1034, 1036, 1038, 1040, 1048, 1050, 1052,
+ 1055, 1058, 1061, 1066, 1067, 1070, 1071, 1074, 1075, 1076,
+ 1079, 1080, 1083, 1084, 1087, 1088, 1091, 1094, 1095, 1098,
+ 1099, 1102, 1105, 1111, 1113, 1114, 1117, 1118, 1123, 1125,
+ 1129, 1130, 1131, 1134, 1135, 1138, 1139, 1142, 1143, 1146,
+ 1147, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1159, 1160,
+ 1163, 1166, 1168, 1172, 1176, 1177, 1180, 1181, 1184, 1186,
+ 1188, 1190, 1191, 1193, 1195, 1197, 1200, 1202, 1206, 1207,
+ 1210, 1211, 1212, 1213, 1216, 1217, 1218, 1219, 1220, 1221,
+ 1226, 1232, 1242, 1243, 1244, 1245, 1248, 1250, 1254, 1258,
+ 1261, 1262, 1265, 1266, 1269, 1270, 1273, 1274, 1275, 1276,
+ 1277, 1278, 1279
};
#endif
switch (yyn) {
case 1:
-#line 389 "llgrammar.y"
+#line 380 "llgrammar.y"
{ lhExternals (yyvsp[0].interfacelist); ;
break;}
case 2:
-#line 390 "llgrammar.y"
+#line 381 "llgrammar.y"
{ interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
break;}
case 3:
-#line 393 "llgrammar.y"
+#line 384 "llgrammar.y"
{ yyval.interfacelist = interfaceNodeList_new (); ;
break;}
case 4:
-#line 394 "llgrammar.y"
+#line 385 "llgrammar.y"
{ yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
break;}
case 7:
-#line 401 "llgrammar.y"
+#line 392 "llgrammar.y"
{ yyval.interfacelist = interfaceNodeList_new (); ;
break;}
case 8:
-#line 402 "llgrammar.y"
+#line 393 "llgrammar.y"
{ yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
break;}
case 9:
-#line 403 "llgrammar.y"
+#line 394 "llgrammar.y"
{ yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
break;}
case 10:
-#line 406 "llgrammar.y"
+#line 397 "llgrammar.y"
{ yyval.interfacelist = interfaceNodeList_new (); ;
break;}
case 11:
-#line 407 "llgrammar.y"
+#line 398 "llgrammar.y"
{ yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
break;}
case 15:
-#line 416 "llgrammar.y"
+#line 407 "llgrammar.y"
{ yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
/* assume subspecs are already processed, symbol table info in external file */
;
break;}
case 16:
-#line 422 "llgrammar.y"
+#line 413 "llgrammar.y"
{ yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
break;}
case 17:
-#line 426 "llgrammar.y"
+#line 417 "llgrammar.y"
{ declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
break;}
case 18:
-#line 428 "llgrammar.y"
+#line 419 "llgrammar.y"
{ declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
break;}
case 19:
-#line 430 "llgrammar.y"
+#line 421 "llgrammar.y"
{ declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
break;}
case 20:
-#line 432 "llgrammar.y"
+#line 423 "llgrammar.y"
{ declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
break;}
case 21:
-#line 434 "llgrammar.y"
+#line 425 "llgrammar.y"
{ yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
break;}
case 22:
-#line 436 "llgrammar.y"
+#line 427 "llgrammar.y"
{ declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
break;}
case 23:
-#line 440 "llgrammar.y"
+#line 431 "llgrammar.y"
{ yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
break;}
case 24:
-#line 443 "llgrammar.y"
+#line 434 "llgrammar.y"
{ yyval.paramlist = paramNodeList_new (); ;
break;}
case 25:
-#line 444 "llgrammar.y"
+#line 435 "llgrammar.y"
{ yyval.paramlist = yyvsp[0].paramlist; ;
break;}
case 26:
-#line 448 "llgrammar.y"
+#line 439 "llgrammar.y"
{ yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
break;}
case 27:
-#line 450 "llgrammar.y"
+#line 441 "llgrammar.y"
{ yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
break;}
case 28:
-#line 453 "llgrammar.y"
+#line 444 "llgrammar.y"
{ yyval.param = markYieldParamNode (yyvsp[0].param); ;
break;}
case 29:
-#line 454 "llgrammar.y"
+#line 445 "llgrammar.y"
{ yyval.param = yyvsp[0].param; ;
break;}
case 30:
-#line 457 "llgrammar.y"
+#line 448 "llgrammar.y"
{ symtable_export (g_symtab, FALSE); ;
break;}
case 31:
-#line 458 "llgrammar.y"
+#line 449 "llgrammar.y"
{ yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
break;}
case 32:
-#line 462 "llgrammar.y"
+#line 453 "llgrammar.y"
{ declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
break;}
case 33:
-#line 464 "llgrammar.y"
+#line 455 "llgrammar.y"
{ declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
break;}
case 34:
-#line 466 "llgrammar.y"
+#line 457 "llgrammar.y"
{ declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
break;}
case 35:
-#line 468 "llgrammar.y"
+#line 459 "llgrammar.y"
{ declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
break;}
case 36:
-#line 472 "llgrammar.y"
+#line 463 "llgrammar.y"
{ yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
break;}
case 37:
-#line 476 "llgrammar.y"
+#line 467 "llgrammar.y"
{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
break;}
case 38:
-#line 478 "llgrammar.y"
+#line 469 "llgrammar.y"
{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
break;}
case 39:
-#line 480 "llgrammar.y"
+#line 471 "llgrammar.y"
{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
break;}
case 40:
-#line 483 "llgrammar.y"
+#line 474 "llgrammar.y"
{ yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
break;}
case 41:
-#line 484 "llgrammar.y"
+#line 475 "llgrammar.y"
{ yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
break;}
case 42:
-#line 487 "llgrammar.y"
+#line 478 "llgrammar.y"
{ yyval.typequal = qual_createPrintfLike (); ;
break;}
case 43:
-#line 488 "llgrammar.y"
+#line 479 "llgrammar.y"
{ yyval.typequal = qual_createScanfLike (); ;
break;}
case 44:
-#line 489 "llgrammar.y"
+#line 480 "llgrammar.y"
{ yyval.typequal = qual_createMessageLike (); ;
break;}
case 45:
-#line 492 "llgrammar.y"
+#line 483 "llgrammar.y"
{ enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
break;}
case 46:
-#line 494 "llgrammar.y"
+#line 485 "llgrammar.y"
{ yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls,
yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
/* type, declarator, glovbls, privateinits,
;
break;}
case 47:
-#line 500 "llgrammar.y"
+#line 491 "llgrammar.y"
{ enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
break;}
case 48:
-#line 504 "llgrammar.y"
+#line 495 "llgrammar.y"
{ yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist,
yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate);
/* type, declarator, glovbls, privateinits,
;
break;}
case 49:
-#line 514 "llgrammar.y"
+#line 505 "llgrammar.y"
{ enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
break;}
case 50:
-#line 516 "llgrammar.y"
+#line 507 "llgrammar.y"
{ yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate);
symtable_exitScope (g_symtab); ;
break;}
case 51:
-#line 519 "llgrammar.y"
+#line 510 "llgrammar.y"
{ yyval.claim = (claimNode) 0; ;
break;}
case 52:
-#line 522 "llgrammar.y"
+#line 513 "llgrammar.y"
{g_inTypeDef = TRUE; ;
break;}
case 53:
-#line 522 "llgrammar.y"
+#line 513 "llgrammar.y"
{g_inTypeDef = FALSE; ;
break;}
case 54:
-#line 523 "llgrammar.y"
+#line 514 "llgrammar.y"
{ yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
break;}
case 55:
-#line 524 "llgrammar.y"
+#line 515 "llgrammar.y"
{g_inTypeDef = TRUE; ;
break;}
case 56:
-#line 525 "llgrammar.y"
+#line 516 "llgrammar.y"
{g_inTypeDef = FALSE; ;
break;}
case 57:
-#line 526 "llgrammar.y"
+#line 517 "llgrammar.y"
{ yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
break;}
case 58:
-#line 527 "llgrammar.y"
+#line 518 "llgrammar.y"
{g_inTypeDef = TRUE; ;
break;}
case 59:
-#line 528 "llgrammar.y"
+#line 519 "llgrammar.y"
{g_inTypeDef = FALSE; ;
break;}
case 60:
-#line 529 "llgrammar.y"
+#line 520 "llgrammar.y"
{ yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
break;}
case 61:
-#line 530 "llgrammar.y"
+#line 521 "llgrammar.y"
{g_inTypeDef = TRUE; ;
break;}
case 62:
-#line 530 "llgrammar.y"
+#line 521 "llgrammar.y"
{g_inTypeDef = FALSE; ;
break;}
case 63:
-#line 531 "llgrammar.y"
+#line 522 "llgrammar.y"
{ yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
break;}
case 64:
-#line 534 "llgrammar.y"
+#line 525 "llgrammar.y"
{ g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
break;}
case 65:
-#line 535 "llgrammar.y"
+#line 526 "llgrammar.y"
{ g_inTypeDef = FALSE; ;
break;}
case 66:
-#line 536 "llgrammar.y"
+#line 527 "llgrammar.y"
{ yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
break;}
case 67:
-#line 538 "llgrammar.y"
+#line 529 "llgrammar.y"
{ yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
break;}
case 68:
-#line 540 "llgrammar.y"
+#line 531 "llgrammar.y"
{ yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
break;}
case 69:
-#line 556 "llgrammar.y"
+#line 547 "llgrammar.y"
{ yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
break;}
case 70:
-#line 558 "llgrammar.y"
+#line 549 "llgrammar.y"
{ yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
break;}
case 71:
-#line 561 "llgrammar.y"
+#line 552 "llgrammar.y"
{ yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
break;}
case 72:
-#line 563 "llgrammar.y"
+#line 554 "llgrammar.y"
{ checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
break;}
case 73:
-#line 564 "llgrammar.y"
+#line 555 "llgrammar.y"
{ yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
break;}
case 74:
-#line 567 "llgrammar.y"
+#line 558 "llgrammar.y"
{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
break;}
case 75:
-#line 568 "llgrammar.y"
+#line 559 "llgrammar.y"
{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
break;}
case 77:
-#line 576 "llgrammar.y"
+#line 567 "llgrammar.y"
{ yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
break;}
case 78:
-#line 578 "llgrammar.y"
+#line 569 "llgrammar.y"
{ yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
break;}
case 79:
-#line 582 "llgrammar.y"
+#line 573 "llgrammar.y"
{ yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
break;}
case 80:
-#line 584 "llgrammar.y"
+#line 575 "llgrammar.y"
{ yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
break;}
case 81:
-#line 586 "llgrammar.y"
+#line 577 "llgrammar.y"
{ yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
break;}
case 82:
-#line 588 "llgrammar.y"
+#line 579 "llgrammar.y"
{ yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
break;}
case 83:
-#line 591 "llgrammar.y"
+#line 582 "llgrammar.y"
{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
break;}
case 84:
-#line 592 "llgrammar.y"
+#line 583 "llgrammar.y"
{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
break;}
case 85:
-#line 596 "llgrammar.y"
+#line 587 "llgrammar.y"
{ yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
break;}
case 86:
-#line 598 "llgrammar.y"
+#line 589 "llgrammar.y"
{ yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
break;}
case 87:
-#line 599 "llgrammar.y"
+#line 590 "llgrammar.y"
{ yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
break;}
case 88:
-#line 603 "llgrammar.y"
+#line 594 "llgrammar.y"
{ yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
break;}
case 89:
-#line 604 "llgrammar.y"
+#line 595 "llgrammar.y"
{ yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
break;}
case 90:
-#line 608 "llgrammar.y"
+#line 599 "llgrammar.y"
{ yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
break;}
case 91:
-#line 609 "llgrammar.y"
+#line 600 "llgrammar.y"
{ yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
break;}
case 92:
-#line 612 "llgrammar.y"
+#line 603 "llgrammar.y"
{ yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
break;}
case 93:
-#line 613 "llgrammar.y"
+#line 604 "llgrammar.y"
{ yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
break;}
case 94:
-#line 614 "llgrammar.y"
+#line 605 "llgrammar.y"
{ yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
yyvsp[-1].name, yyvsp[0].signature); ;
break;}
case 95:
-#line 618 "llgrammar.y"
+#line 609 "llgrammar.y"
{ yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
break;}
case 96:
-#line 619 "llgrammar.y"
+#line 610 "llgrammar.y"
{ yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
break;}
case 99:
-#line 627 "llgrammar.y"
+#line 618 "llgrammar.y"
{ yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
break;}
case 100:
-#line 629 "llgrammar.y"
+#line 620 "llgrammar.y"
{ yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
break;}
case 101:
-#line 632 "llgrammar.y"
+#line 623 "llgrammar.y"
{ yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
break;}
case 102:
-#line 633 "llgrammar.y"
+#line 624 "llgrammar.y"
{ yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
break;}
case 103:
-#line 637 "llgrammar.y"
+#line 628 "llgrammar.y"
{ yyval.globals = varDeclarationNodeList_new (); ;
break;}
case 104:
-#line 639 "llgrammar.y"
+#line 630 "llgrammar.y"
{ varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
break;}
case 105:
-#line 642 "llgrammar.y"
+#line 633 "llgrammar.y"
{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
break;}
case 106:
-#line 643 "llgrammar.y"
+#line 634 "llgrammar.y"
{ yyval.vardeclaration = makeInternalStateNode (); ;
break;}
case 107:
-#line 644 "llgrammar.y"
+#line 635 "llgrammar.y"
{ yyval.vardeclaration = makeFileSystemNode (); ;
break;}
case 108:
-#line 647 "llgrammar.y"
+#line 638 "llgrammar.y"
{ yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
break;}
case 109:
-#line 648 "llgrammar.y"
+#line 639 "llgrammar.y"
{ varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
break;}
case 110:
-#line 652 "llgrammar.y"
+#line 643 "llgrammar.y"
{ yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
break;}
case 111:
-#line 655 "llgrammar.y"
+#line 646 "llgrammar.y"
{ yyval.letdecls = letDeclNodeList_new (); ;
break;}
case 112:
-#line 656 "llgrammar.y"
+#line 647 "llgrammar.y"
{ yyval.letdecls = yyvsp[-1].letdecls; ;
break;}
case 113:
-#line 659 "llgrammar.y"
+#line 650 "llgrammar.y"
{ yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
break;}
case 114:
-#line 660 "llgrammar.y"
+#line 651 "llgrammar.y"
{ yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
break;}
case 115:
-#line 663 "llgrammar.y"
+#line 654 "llgrammar.y"
{ yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
break;}
case 116:
-#line 664 "llgrammar.y"
+#line 655 "llgrammar.y"
{ yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
break;}
case 118:
-#line 669 "llgrammar.y"
+#line 660 "llgrammar.y"
{ yyval.lclpredicate = (lclPredicateNode)0; ;
break;}
case 119:
-#line 670 "llgrammar.y"
+#line 661 "llgrammar.y"
{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
break;}
case 120:
-#line 673 "llgrammar.y"
+#line 664 "llgrammar.y"
{ yyval.lclpredicate = (lclPredicateNode)0; ;
break;}
case 121:
-#line 674 "llgrammar.y"
+#line 665 "llgrammar.y"
{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
break;}
case 122:
-#line 677 "llgrammar.y"
+#line 668 "llgrammar.y"
{ yyval.modify = (modifyNode)0; ;
break;}
case 123:
-#line 678 "llgrammar.y"
+#line 669 "llgrammar.y"
{ yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
break;}
case 124:
-#line 679 "llgrammar.y"
+#line 670 "llgrammar.y"
{ yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
break;}
case 125:
-#line 680 "llgrammar.y"
+#line 671 "llgrammar.y"
{ yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
break;}
case 126:
-#line 683 "llgrammar.y"
+#line 674 "llgrammar.y"
{ yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
break;}
case 127:
-#line 684 "llgrammar.y"
+#line 675 "llgrammar.y"
{ yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
break;}
case 128:
-#line 687 "llgrammar.y"
+#line 678 "llgrammar.y"
{ yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
break;}
case 129:
-#line 688 "llgrammar.y"
+#line 679 "llgrammar.y"
{ yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
break;}
case 130:
-#line 689 "llgrammar.y"
+#line 680 "llgrammar.y"
{ yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
break;}
case 131:
-#line 690 "llgrammar.y"
+#line 681 "llgrammar.y"
{ yyval.storeref = makeStoreRefNodeInternal (); ;
break;}
case 132:
-#line 691 "llgrammar.y"
+#line 682 "llgrammar.y"
{ yyval.storeref = makeStoreRefNodeSystem (); ;
break;}
case 133:
-#line 694 "llgrammar.y"
+#line 685 "llgrammar.y"
{ yyval.lclpredicate = (lclPredicateNode)0; ;
break;}
case 134:
-#line 695 "llgrammar.y"
+#line 686 "llgrammar.y"
{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
break;}
case 135:
-#line 698 "llgrammar.y"
+#line 689 "llgrammar.y"
{ yyval.lclpredicate = (lclPredicateNode)0; ;
break;}
case 136:
-#line 699 "llgrammar.y"
+#line 690 "llgrammar.y"
{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
break;}
case 137:
-#line 702 "llgrammar.y"
+#line 693 "llgrammar.y"
{ yyval.paramlist = paramNodeList_new (); ;
break;}
case 138:
-#line 703 "llgrammar.y"
+#line 694 "llgrammar.y"
{ yyval.paramlist = yyvsp[0].paramlist; ;
break;}
case 140:
-#line 707 "llgrammar.y"
+#line 698 "llgrammar.y"
{ yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
break;}
case 141:
-#line 708 "llgrammar.y"
+#line 699 "llgrammar.y"
{ yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
break;}
case 142:
-#line 711 "llgrammar.y"
+#line 702 "llgrammar.y"
{ yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
break;}
case 143:
-#line 712 "llgrammar.y"
+#line 703 "llgrammar.y"
{ yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
break;}
case 144:
-#line 715 "llgrammar.y"
+#line 706 "llgrammar.y"
{ yyval.program = (programNode)0; ;
break;}
case 145:
-#line 716 "llgrammar.y"
+#line 707 "llgrammar.y"
{ yyval.program = yyvsp[-1].program; ;
break;}
case 146:
-#line 717 "llgrammar.y"
+#line 708 "llgrammar.y"
{ yyval.program = yyvsp[-2].program; ;
break;}
case 147:
-#line 720 "llgrammar.y"
+#line 711 "llgrammar.y"
{ yyval.program = makeProgramNode (yyvsp[0].stmt); ;
break;}
case 148:
-#line 723 "llgrammar.y"
+#line 714 "llgrammar.y"
{ yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
break;}
case 149:
-#line 725 "llgrammar.y"
+#line 716 "llgrammar.y"
{ programNodeList x = programNodeList_new ();
programNodeList_addh (x, yyvsp[-1].program);
yyval.program = makeProgramNodeAction (x, ACT_ITER);
;
break;}
case 150:
-#line 730 "llgrammar.y"
+#line 721 "llgrammar.y"
{ programNodeList x = programNodeList_new ();
programNodeList_addh (x, yyvsp[-2].program);
programNodeList_addh (x, yyvsp[0].program);
;
break;}
case 151:
-#line 736 "llgrammar.y"
+#line 727 "llgrammar.y"
{ programNodeList x = programNodeList_new ();
programNodeList_addh (x, yyvsp[-2].program);
programNodeList_addh (x, yyvsp[0].program);
;
break;}
case 152:
-#line 744 "llgrammar.y"
+#line 735 "llgrammar.y"
{ yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
break;}
case 153:
-#line 746 "llgrammar.y"
+#line 737 "llgrammar.y"
{ yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
break;}
case 154:
-#line 748 "llgrammar.y"
+#line 739 "llgrammar.y"
{ yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
break;}
case 155:
-#line 750 "llgrammar.y"
+#line 741 "llgrammar.y"
{ yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
break;}
case 156:
-#line 753 "llgrammar.y"
+#line 744 "llgrammar.y"
{ yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
break;}
case 157:
-#line 754 "llgrammar.y"
+#line 745 "llgrammar.y"
{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
break;}
case 159:
-#line 758 "llgrammar.y"
+#line 749 "llgrammar.y"
{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
break;}
case 160:
-#line 759 "llgrammar.y"
+#line 750 "llgrammar.y"
{ yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
break;}
case 161:
-#line 760 "llgrammar.y"
+#line 751 "llgrammar.y"
{ yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
break;}
case 162:
-#line 761 "llgrammar.y"
+#line 752 "llgrammar.y"
{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
break;}
case 163:
-#line 762 "llgrammar.y"
+#line 753 "llgrammar.y"
{ yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
break;}
case 164:
-#line 764 "llgrammar.y"
+#line 755 "llgrammar.y"
{ yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
break;}
case 165:
-#line 766 "llgrammar.y"
+#line 757 "llgrammar.y"
{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
break;}
case 166:
-#line 769 "llgrammar.y"
+#line 760 "llgrammar.y"
{ yyval.abstbody = (abstBodyNode)0; ;
break;}
case 167:
-#line 770 "llgrammar.y"
+#line 761 "llgrammar.y"
{ yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
break;}
case 168:
-#line 771 "llgrammar.y"
+#line 762 "llgrammar.y"
{ yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
break;}
case 169:
-#line 772 "llgrammar.y"
+#line 763 "llgrammar.y"
{ yyval.abstbody = (abstBodyNode)0; ;
break;}
case 170:
-#line 775 "llgrammar.y"
+#line 766 "llgrammar.y"
{ yyval.fcns = fcnNodeList_new (); ;
break;}
case 171:
-#line 776 "llgrammar.y"
+#line 767 "llgrammar.y"
{ yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
break;}
case 172:
-#line 779 "llgrammar.y"
+#line 770 "llgrammar.y"
{ yyval.lclpredicate = (lclPredicateNode)0; ;
break;}
case 174:
-#line 783 "llgrammar.y"
+#line 774 "llgrammar.y"
{ g_inTypeDef = FALSE; ;
break;}
case 175:
-#line 784 "llgrammar.y"
+#line 775 "llgrammar.y"
{ yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
yyval.lclpredicate = yyvsp[-1].lclpredicate;
;
break;}
case 176:
-#line 792 "llgrammar.y"
+#line 783 "llgrammar.y"
{ yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
break;}
case 177:
-#line 794 "llgrammar.y"
+#line 785 "llgrammar.y"
{ yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
break;}
case 178:
-#line 797 "llgrammar.y"
+#line 788 "llgrammar.y"
{ declareForwardType (yyvsp[0].declare); ;
break;}
case 179:
-#line 798 "llgrammar.y"
+#line 789 "llgrammar.y"
{ yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
break;}
case 180:
-#line 801 "llgrammar.y"
+#line 792 "llgrammar.y"
{ yyval.abstbody = (abstBodyNode)0; ;
break;}
case 181:
-#line 802 "llgrammar.y"
+#line 793 "llgrammar.y"
{ yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
break;}
case 182:
-#line 805 "llgrammar.y"
+#line 796 "llgrammar.y"
{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
break;}
case 183:
-#line 806 "llgrammar.y"
+#line 797 "llgrammar.y"
{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
break;}
case 184:
-#line 807 "llgrammar.y"
+#line 798 "llgrammar.y"
{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
break;}
case 185:
-#line 808 "llgrammar.y"
+#line 799 "llgrammar.y"
{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
break;}
case 186:
-#line 809 "llgrammar.y"
+#line 800 "llgrammar.y"
{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
break;}
case 187:
-#line 810 "llgrammar.y"
+#line 801 "llgrammar.y"
{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
break;}
case 188:
-#line 811 "llgrammar.y"
+#line 802 "llgrammar.y"
{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
break;}
case 189:
-#line 812 "llgrammar.y"
+#line 803 "llgrammar.y"
{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
break;}
case 190:
-#line 813 "llgrammar.y"
+#line 804 "llgrammar.y"
{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
break;}
case 191:
-#line 814 "llgrammar.y"
+#line 805 "llgrammar.y"
{ yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
break;}
case 192:
-#line 822 "llgrammar.y"
+#line 813 "llgrammar.y"
{ yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
break;}
case 193:
-#line 823 "llgrammar.y"
+#line 814 "llgrammar.y"
{ yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
break;}
case 194:
-#line 829 "llgrammar.y"
+#line 820 "llgrammar.y"
{ yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
break;}
case 195:
-#line 831 "llgrammar.y"
+#line 822 "llgrammar.y"
{ yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
break;}
case 196:
-#line 836 "llgrammar.y"
+#line 827 "llgrammar.y"
{ yyval.typequal = qual_createOut (); ;
break;}
case 197:
-#line 837 "llgrammar.y"
+#line 828 "llgrammar.y"
{ yyval.typequal = qual_createUnused (); ;
break;}
case 198:
-#line 838 "llgrammar.y"
+#line 829 "llgrammar.y"
{ yyval.typequal = qual_createSef (); ;
break;}
case 199:
-#line 839 "llgrammar.y"
+#line 830 "llgrammar.y"
{ yyval.typequal = qual_createOnly (); ;
break;}
case 200:
-#line 840 "llgrammar.y"
+#line 831 "llgrammar.y"
{ yyval.typequal = qual_createOwned (); ;
break;}
case 201:
-#line 841 "llgrammar.y"
+#line 832 "llgrammar.y"
{ yyval.typequal = qual_createDependent (); ;
break;}
case 202:
-#line 842 "llgrammar.y"
+#line 833 "llgrammar.y"
{ yyval.typequal = qual_createKeep (); ;
break;}
case 203:
-#line 843 "llgrammar.y"
+#line 834 "llgrammar.y"
{ yyval.typequal = qual_createKept (); ;
break;}
case 204:
-#line 844 "llgrammar.y"
+#line 835 "llgrammar.y"
{ yyval.typequal = qual_createObserver (); ;
break;}
case 205:
-#line 845 "llgrammar.y"
+#line 836 "llgrammar.y"
{ yyval.typequal = qual_createExits (); ;
break;}
case 206:
-#line 846 "llgrammar.y"
+#line 837 "llgrammar.y"
{ yyval.typequal = qual_createMayExit (); ;
break;}
case 207:
-#line 847 "llgrammar.y"
+#line 838 "llgrammar.y"
{ yyval.typequal = qual_createTrueExit (); ;
break;}
case 208:
-#line 848 "llgrammar.y"
+#line 839 "llgrammar.y"
{ yyval.typequal = qual_createFalseExit (); ;
break;}
case 209:
-#line 849 "llgrammar.y"
+#line 840 "llgrammar.y"
{ yyval.typequal = qual_createNeverExit (); ;
break;}
case 210:
-#line 850 "llgrammar.y"
+#line 841 "llgrammar.y"
{ yyval.typequal = qual_createOnly (); ;
break;}
case 211:
-#line 851 "llgrammar.y"
+#line 842 "llgrammar.y"
{ yyval.typequal = qual_createShared (); ;
break;}
case 212:
-#line 852 "llgrammar.y"
+#line 843 "llgrammar.y"
{ yyval.typequal = qual_createUnique (); ;
break;}
case 213:
-#line 853 "llgrammar.y"
+#line 844 "llgrammar.y"
{ yyval.typequal = qual_createChecked (); ;
break;}
case 214:
-#line 854 "llgrammar.y"
+#line 845 "llgrammar.y"
{ yyval.typequal = qual_createUnchecked (); ;
break;}
case 215:
-#line 855 "llgrammar.y"
+#line 846 "llgrammar.y"
{ yyval.typequal = qual_createCheckedStrict (); ;
break;}
case 216:
-#line 856 "llgrammar.y"
+#line 847 "llgrammar.y"
{ yyval.typequal = qual_createTrueNull (); ;
break;}
case 217:
-#line 857 "llgrammar.y"
+#line 848 "llgrammar.y"
{ yyval.typequal = qual_createFalseNull (); ;
break;}
case 218:
-#line 858 "llgrammar.y"
+#line 849 "llgrammar.y"
{ yyval.typequal = qual_createRelNull (); ;
break;}
case 219:
-#line 859 "llgrammar.y"
+#line 850 "llgrammar.y"
{ yyval.typequal = qual_createRelDef (); ;
break;}
case 220:
-#line 860 "llgrammar.y"
+#line 851 "llgrammar.y"
{ yyval.typequal = qual_createRefCounted (); ;
break;}
case 221:
-#line 861 "llgrammar.y"
+#line 852 "llgrammar.y"
{ yyval.typequal = qual_createRefs (); ;
break;}
case 222:
-#line 862 "llgrammar.y"
+#line 853 "llgrammar.y"
{ yyval.typequal = qual_createNewRef (); ;
break;}
case 223:
-#line 863 "llgrammar.y"
+#line 854 "llgrammar.y"
{ yyval.typequal = qual_createKillRef (); ;
break;}
case 224:
-#line 864 "llgrammar.y"
+#line 855 "llgrammar.y"
{ yyval.typequal = qual_createNull (); ;
break;}
case 225:
-#line 865 "llgrammar.y"
+#line 856 "llgrammar.y"
{ yyval.typequal = qual_createNotNull (); ;
break;}
case 226:
-#line 866 "llgrammar.y"
+#line 857 "llgrammar.y"
{ yyval.typequal = qual_createReturned (); ;
break;}
case 227:
-#line 867 "llgrammar.y"
+#line 858 "llgrammar.y"
{ yyval.typequal = qual_createExposed (); ;
break;}
case 228:
-#line 868 "llgrammar.y"
+#line 859 "llgrammar.y"
{ yyval.typequal = qual_createPartial (); ;
break;}
case 229:
-#line 869 "llgrammar.y"
+#line 860 "llgrammar.y"
{ yyval.typequal = qual_createNullTerminated () ; ;
break;}
case 230:
-#line 870 "llgrammar.y"
+#line 861 "llgrammar.y"
{ yyval.typequal = qual_createUndef (); ;
break;}
case 231:
-#line 871 "llgrammar.y"
+#line 862 "llgrammar.y"
{ yyval.typequal = qual_createKilled (); ;
break;}
case 232:
-#line 875 "llgrammar.y"
+#line 866 "llgrammar.y"
{ yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
break;}
case 233:
-#line 877 "llgrammar.y"
+#line 868 "llgrammar.y"
{ yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
break;}
case 234:
-#line 879 "llgrammar.y"
+#line 870 "llgrammar.y"
{ yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
break;}
case 235:
-#line 881 "llgrammar.y"
+#line 872 "llgrammar.y"
{ yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
break;}
case 236:
-#line 883 "llgrammar.y"
+#line 874 "llgrammar.y"
{ yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
break;}
case 238:
-#line 893 "llgrammar.y"
+#line 884 "llgrammar.y"
{ llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
break;}
case 239:
-#line 897 "llgrammar.y"
+#line 888 "llgrammar.y"
{ yyval.count = 1; ;
break;}
case 240:
-#line 898 "llgrammar.y"
+#line 889 "llgrammar.y"
{ yyval.count = yyvsp[-1].count + 1; ;
break;}
case 241:
-#line 902 "llgrammar.y"
+#line 893 "llgrammar.y"
{ (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
break;}
case 242:
-#line 904 "llgrammar.y"
+#line 895 "llgrammar.y"
{ yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
break;}
case 243:
-#line 906 "llgrammar.y"
+#line 897 "llgrammar.y"
{ (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
break;}
case 244:
-#line 908 "llgrammar.y"
+#line 899 "llgrammar.y"
{ yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
break;}
case 245:
-#line 910 "llgrammar.y"
+#line 901 "llgrammar.y"
{ yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
break;}
case 246:
-#line 912 "llgrammar.y"
+#line 903 "llgrammar.y"
{ yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
break;}
case 247:
-#line 915 "llgrammar.y"
+#line 906 "llgrammar.y"
{ yyval.ltok = ltoken_undefined; ;
break;}
case 249:
-#line 919 "llgrammar.y"
+#line 910 "llgrammar.y"
{ yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
break;}
case 250:
-#line 920 "llgrammar.y"
+#line 911 "llgrammar.y"
{ yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
break;}
case 251:
-#line 925 "llgrammar.y"
+#line 916 "llgrammar.y"
{ yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
break;}
case 252:
-#line 929 "llgrammar.y"
+#line 920 "llgrammar.y"
{ yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
break;}
case 253:
-#line 931 "llgrammar.y"
+#line 922 "llgrammar.y"
{ yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
break;}
case 254:
-#line 934 "llgrammar.y"
+#line 925 "llgrammar.y"
{ ; ;
break;}
case 255:
-#line 935 "llgrammar.y"
+#line 926 "llgrammar.y"
{ ; ;
break;}
case 256:
-#line 939 "llgrammar.y"
+#line 930 "llgrammar.y"
{ yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
break;}
case 257:
-#line 941 "llgrammar.y"
+#line 932 "llgrammar.y"
{ yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
break;}
case 258:
-#line 944 "llgrammar.y"
+#line 935 "llgrammar.y"
{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
break;}
case 259:
-#line 945 "llgrammar.y"
+#line 936 "llgrammar.y"
{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
break;}
case 260:
-#line 955 "llgrammar.y"
+#line 946 "llgrammar.y"
{ yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
break;}
case 261:
-#line 956 "llgrammar.y"
+#line 947 "llgrammar.y"
{ yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
break;}
case 262:
-#line 959 "llgrammar.y"
+#line 950 "llgrammar.y"
{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
break;}
case 263:
-#line 960 "llgrammar.y"
+#line 951 "llgrammar.y"
{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
break;}
case 264:
-#line 961 "llgrammar.y"
+#line 952 "llgrammar.y"
{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
break;}
case 265:
-#line 962 "llgrammar.y"
+#line 953 "llgrammar.y"
{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
break;}
case 266:
-#line 963 "llgrammar.y"
+#line 954 "llgrammar.y"
{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
break;}
case 267:
-#line 964 "llgrammar.y"
+#line 955 "llgrammar.y"
{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
break;}
case 268:
-#line 967 "llgrammar.y"
+#line 958 "llgrammar.y"
{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
break;}
case 269:
-#line 968 "llgrammar.y"
+#line 959 "llgrammar.y"
{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
break;}
case 270:
-#line 969 "llgrammar.y"
+#line 960 "llgrammar.y"
{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
break;}
case 271:
-#line 970 "llgrammar.y"
+#line 961 "llgrammar.y"
{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
break;}
case 272:
-#line 971 "llgrammar.y"
+#line 962 "llgrammar.y"
{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
break;}
case 273:
-#line 972 "llgrammar.y"
+#line 963 "llgrammar.y"
{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
break;}
case 274:
-#line 981 "llgrammar.y"
+#line 972 "llgrammar.y"
{ yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
break;}
case 275:
-#line 982 "llgrammar.y"
+#line 973 "llgrammar.y"
{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
break;}
case 276:
-#line 983 "llgrammar.y"
+#line 974 "llgrammar.y"
{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
break;}
case 277:
-#line 984 "llgrammar.y"
+#line 975 "llgrammar.y"
{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
break;}
case 278:
-#line 985 "llgrammar.y"
+#line 976 "llgrammar.y"
{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
break;}
case 279:
-#line 991 "llgrammar.y"
+#line 982 "llgrammar.y"
{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
break;}
case 280:
-#line 992 "llgrammar.y"
+#line 983 "llgrammar.y"
{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
break;}
case 281:
-#line 993 "llgrammar.y"
+#line 984 "llgrammar.y"
{ yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
break;}
case 282:
-#line 1003 "llgrammar.y"
+#line 994 "llgrammar.y"
{ yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
break;}
case 283:
-#line 1004 "llgrammar.y"
+#line 995 "llgrammar.y"
{ yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
break;}
case 284:
-#line 1005 "llgrammar.y"
+#line 996 "llgrammar.y"
{ yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
break;}
case 285:
-#line 1010 "llgrammar.y"
+#line 1001 "llgrammar.y"
{ yyval.abstDecl = (abstDeclaratorNode)0; ;
break;}
case 286:
-#line 1011 "llgrammar.y"
+#line 1002 "llgrammar.y"
{ yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
break;}
case 287:
-#line 1014 "llgrammar.y"
+#line 1005 "llgrammar.y"
{ yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
break;}
case 288:
-#line 1015 "llgrammar.y"
+#line 1006 "llgrammar.y"
{ yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
break;}
case 289:
-#line 1016 "llgrammar.y"
+#line 1007 "llgrammar.y"
{ yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
break;}
case 290:
-#line 1017 "llgrammar.y"
+#line 1008 "llgrammar.y"
{ yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
break;}
case 291:
-#line 1018 "llgrammar.y"
+#line 1009 "llgrammar.y"
{ yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
break;}
case 292:
-#line 1019 "llgrammar.y"
+#line 1010 "llgrammar.y"
{ yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
break;}
case 293:
-#line 1020 "llgrammar.y"
+#line 1011 "llgrammar.y"
{ yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
break;}
case 294:
-#line 1021 "llgrammar.y"
+#line 1012 "llgrammar.y"
{ yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
break;}
case 295:
-#line 1024 "llgrammar.y"
+#line 1015 "llgrammar.y"
{ yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
break;}
case 296:
-#line 1025 "llgrammar.y"
+#line 1016 "llgrammar.y"
{ yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
break;}
case 297:
-#line 1029 "llgrammar.y"
+#line 1020 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
break;}
case 298:
-#line 1031 "llgrammar.y"
+#line 1022 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
break;}
case 299:
-#line 1033 "llgrammar.y"
+#line 1024 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
break;}
case 300:
-#line 1035 "llgrammar.y"
+#line 1026 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
break;}
case 301:
-#line 1037 "llgrammar.y"
+#line 1028 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM,
opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
break;}
case 302:
-#line 1040 "llgrammar.y"
+#line 1031 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
break;}
case 303:
-#line 1042 "llgrammar.y"
+#line 1033 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
break;}
case 304:
-#line 1044 "llgrammar.y"
+#line 1035 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
break;}
case 305:
-#line 1046 "llgrammar.y"
+#line 1037 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
break;}
case 306:
-#line 1048 "llgrammar.y"
+#line 1039 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
break;}
case 307:
-#line 1050 "llgrammar.y"
+#line 1041 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
break;}
case 308:
-#line 1058 "llgrammar.y"
+#line 1049 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
break;}
case 309:
-#line 1060 "llgrammar.y"
+#line 1051 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
break;}
case 310:
-#line 1062 "llgrammar.y"
+#line 1053 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
break;}
case 311:
-#line 1065 "llgrammar.y"
+#line 1056 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP,
opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
break;}
case 312:
-#line 1068 "llgrammar.y"
+#line 1059 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
break;}
case 313:
-#line 1071 "llgrammar.y"
+#line 1062 "llgrammar.y"
{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
break;}
case 321:
-#line 1088 "llgrammar.y"
+#line 1079 "llgrammar.y"
{ yyval.count = 0; ;
break;}
case 323:
-#line 1092 "llgrammar.y"
+#line 1083 "llgrammar.y"
{ yyval.count = 1; ;
break;}
case 324:
-#line 1093 "llgrammar.y"
+#line 1084 "llgrammar.y"
{ yyval.count = yyvsp[-2].count + 1; ;
break;}
case 327:
-#line 1100 "llgrammar.y"
+#line 1091 "llgrammar.y"
{ yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
break;}
case 328:
-#line 1103 "llgrammar.y"
+#line 1094 "llgrammar.y"
{ yyval.ltokenList = ltokenList_new (); ;
break;}
case 330:
-#line 1107 "llgrammar.y"
+#line 1098 "llgrammar.y"
{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
break;}
case 331:
-#line 1108 "llgrammar.y"
+#line 1099 "llgrammar.y"
{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
break;}
case 332:
-#line 1111 "llgrammar.y"
+#line 1102 "llgrammar.y"
{ yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
break;}
case 333:
-#line 1114 "llgrammar.y"
+#line 1105 "llgrammar.y"
{ yyval.term = checkSort (yyvsp[0].term); ;
break;}
case 334:
-#line 1121 "llgrammar.y"
+#line 1112 "llgrammar.y"
{ yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
break;}
case 336:
-#line 1123 "llgrammar.y"
+#line 1114 "llgrammar.y"
{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
break;}
case 338:
-#line 1129 "llgrammar.y"
+#line 1120 "llgrammar.y"
{ checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
symtable_exitScope (g_symtab);
;
break;}
case 339:
-#line 1133 "llgrammar.y"
+#line 1124 "llgrammar.y"
{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
break;}
case 340:
-#line 1135 "llgrammar.y"
+#line 1126 "llgrammar.y"
{ yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
break;}
case 342:
-#line 1139 "llgrammar.y"
+#line 1130 "llgrammar.y"
{ yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
break;}
case 343:
-#line 1140 "llgrammar.y"
+#line 1131 "llgrammar.y"
{ yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
break;}
case 347:
-#line 1148 "llgrammar.y"
+#line 1139 "llgrammar.y"
{ yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
break;}
case 348:
-#line 1151 "llgrammar.y"
+#line 1142 "llgrammar.y"
{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
break;}
case 349:
-#line 1152 "llgrammar.y"
+#line 1143 "llgrammar.y"
{ yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
break;}
case 350:
-#line 1155 "llgrammar.y"
+#line 1146 "llgrammar.y"
{ yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
break;}
case 351:
-#line 1156 "llgrammar.y"
+#line 1147 "llgrammar.y"
{ yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
break;}
case 353:
-#line 1160 "llgrammar.y"
+#line 1151 "llgrammar.y"
{ yyval.term = computePossibleSorts (yyvsp[0].term); ;
break;}
case 354:
-#line 1161 "llgrammar.y"
+#line 1152 "llgrammar.y"
{ yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
break;}
case 355:
-#line 1162 "llgrammar.y"
+#line 1153 "llgrammar.y"
{ yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
break;}
case 356:
-#line 1163 "llgrammar.y"
+#line 1154 "llgrammar.y"
{ yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
break;}
case 357:
-#line 1164 "llgrammar.y"
+#line 1155 "llgrammar.y"
{ yyval.term = computePossibleSorts (yyvsp[0].term); ;
break;}
case 358:
-#line 1165 "llgrammar.y"
+#line 1156 "llgrammar.y"
{ yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
break;}
case 359:
-#line 1168 "llgrammar.y"
+#line 1159 "llgrammar.y"
{ yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
break;}
case 361:
-#line 1173 "llgrammar.y"
+#line 1164 "llgrammar.y"
{ yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok);
yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
break;}
case 362:
-#line 1176 "llgrammar.y"
+#line 1167 "llgrammar.y"
{ yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
break;}
case 363:
-#line 1178 "llgrammar.y"
+#line 1169 "llgrammar.y"
{ yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok);
yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok));
;
break;}
case 364:
-#line 1182 "llgrammar.y"
+#line 1173 "llgrammar.y"
{ yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
break;}
case 365:
-#line 1185 "llgrammar.y"
+#line 1176 "llgrammar.y"
{ yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
break;}
case 366:
-#line 1186 "llgrammar.y"
+#line 1177 "llgrammar.y"
{ yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
break;}
case 367:
-#line 1189 "llgrammar.y"
+#line 1180 "llgrammar.y"
{ yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
break;}
case 368:
-#line 1190 "llgrammar.y"
+#line 1181 "llgrammar.y"
{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
break;}
case 369:
-#line 1194 "llgrammar.y"
+#line 1185 "llgrammar.y"
{ yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
break;}
case 370:
-#line 1196 "llgrammar.y"
+#line 1187 "llgrammar.y"
{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
break;}
case 371:
-#line 1198 "llgrammar.y"
+#line 1189 "llgrammar.y"
{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
break;}
case 373:
-#line 1201 "llgrammar.y"
+#line 1192 "llgrammar.y"
{ yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
break;}
case 374:
-#line 1203 "llgrammar.y"
+#line 1194 "llgrammar.y"
{ ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
break;}
case 375:
-#line 1205 "llgrammar.y"
+#line 1196 "llgrammar.y"
{ ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
break;}
case 376:
-#line 1207 "llgrammar.y"
+#line 1198 "llgrammar.y"
{ yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok),
(termNode)0); ;
break;}
case 377:
-#line 1210 "llgrammar.y"
+#line 1201 "llgrammar.y"
{ yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
break;}
case 378:
-#line 1212 "llgrammar.y"
+#line 1203 "llgrammar.y"
{ yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
break;}
case 379:
-#line 1215 "llgrammar.y"
+#line 1206 "llgrammar.y"
{ yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
break;}
case 380:
-#line 1216 "llgrammar.y"
+#line 1207 "llgrammar.y"
{ yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
break;}
case 386:
-#line 1226 "llgrammar.y"
+#line 1217 "llgrammar.y"
{ yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
break;}
case 387:
-#line 1227 "llgrammar.y"
+#line 1218 "llgrammar.y"
{ yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
break;}
case 388:
-#line 1228 "llgrammar.y"
+#line 1219 "llgrammar.y"
{ yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
break;}
case 389:
-#line 1229 "llgrammar.y"
+#line 1220 "llgrammar.y"
{ yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
break;}
case 390:
-#line 1231 "llgrammar.y"
+#line 1222 "llgrammar.y"
{ termNodeList x = termNodeList_new ();
termNodeList_addh (x, yyvsp[-1].term);
yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok);
;
break;}
case 391:
-#line 1236 "llgrammar.y"
+#line 1227 "llgrammar.y"
{ termNodeList x = termNodeList_new ();
termNodeList_addh (x, yyvsp[-3].term);
termNodeList_addh (x, yyvsp[-1].term);
;
break;}
case 392:
-#line 1241 "llgrammar.y"
+#line 1232 "llgrammar.y"
{ yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
break;}
case 393:
-#line 1251 "llgrammar.y"
+#line 1242 "llgrammar.y"
{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
break;}
case 394:
-#line 1252 "llgrammar.y"
+#line 1243 "llgrammar.y"
{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
break;}
case 395:
-#line 1253 "llgrammar.y"
+#line 1244 "llgrammar.y"
{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
break;}
case 396:
-#line 1254 "llgrammar.y"
+#line 1245 "llgrammar.y"
{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
break;}
case 397:
-#line 1258 "llgrammar.y"
+#line 1249 "llgrammar.y"
{ yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
break;}
case 398:
-#line 1260 "llgrammar.y"
+#line 1251 "llgrammar.y"
{ yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
break;}
case 399:
-#line 1263 "llgrammar.y"
+#line 1254 "llgrammar.y"
{ scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
si->kind = SPE_QUANT;
symtable_enterScope (g_symtab, si); ;
break;}
case 400:
-#line 1267 "llgrammar.y"
+#line 1258 "llgrammar.y"
{ yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
break;}
case 401:
-#line 1270 "llgrammar.y"
+#line 1261 "llgrammar.y"
{ yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
break;}
case 402:
-#line 1271 "llgrammar.y"
+#line 1262 "llgrammar.y"
{ yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
break;}
case 403:
-#line 1274 "llgrammar.y"
+#line 1265 "llgrammar.y"
{ yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
break;}
case 404:
-#line 1275 "llgrammar.y"
+#line 1266 "llgrammar.y"
{ yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
break;}
}
}
return 1;
}
-#line 1290 "llgrammar.y"
+#line 1281 "llgrammar.y"
# include "bison.reset"
/*;-*-C-*-;
-** Copyright (c) Massachusetts Institute of Technology 1994-1998.
-** All Rights Reserved.
-** Unpublished rights reserved under the copyright laws of
-** the United States.
+** Splint - annotation-assisted static program checker
+** Copyright (C) 1994-2001 University of Virginia,
+** Massachusetts Institute of Technology
**
-** THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-** OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-**
-** This code is distributed freely and may be used freely under the
-** following conditions:
-**
-** 1. This notice may not be removed or altered.
+** This program is free software; you can redistribute it and/or modify it
+** under the terms of the GNU General Public License as published by the
+** Free Software Foundation; either version 2 of the License, or (at your
+** option) any later version.
+**
+** This program is distributed in the hope that it will be useful, but
+** WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+** General Public License for more details.
+**
+** The GNU General Public License is available from http://www.gnu.org/ or
+** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+** MA 02111-1307, USA.
**
-** 2. Works derived from this code are not distributed for
-** commercial gain without explicit permission from MIT
-** (for permission contact lclint-request@sds.lcs.mit.edu).
+** For information on lclint: lclint-request@cs.virginia.edu
+** To report a bug: lclint-bug@cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
-** Copyright (c) Massachusetts Institute of Technology, 1993
-** All Rights Reserved. Unpublished rights reserved
-** under the copyright laws of the United States.
-**++
-** FACILITY: LSLC
-**
-** MODULE DESCRIPTION:
-**
-** FILENAME: llgramar.y
-**
-** PURPOSE: bison grammar for LCL language.
-**
-** AUTHORS:
-** Yang Meng Tan, Massachusetts Institute of Technology
+** Original author: Yang Meng Tan, Massachusetts Institute of Technology
*/
-
%{
# include "lclintMacros.nf"
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** llmain.c
**
-** Main module for LCLint checker
+** Main module for Splint annotation-assisted program checker
*/
# include <signal.h>
if (anylcl)
{
# ifdef NOLCL
- llfatalerror (cstring_makeLiteral ("This version of LCLint does not handle LCL files."));
+ llfatalerror (cstring_makeLiteral ("This version of Splint does not handle LCL files."));
# else
lslProcess (lclfiles);
# endif
if (nspecErrors == context_getLCLExpect ())
{
specErrors =
- message ("%d spec error%& found, as expected\n ",
+ message ("%d spec warning%&, as expected\n ",
nspecErrors);
}
else
if (context_getLCLExpect () > 0)
{
specErrors =
- message ("%d spec error%& found, expected %d\n ",
+ message ("%d spec warning%&, expected %d\n ",
nspecErrors,
(int) context_getLCLExpect ());
}
else
{
- specErrors = message ("%d spec error%& found\n ",
+ specErrors = message ("%d spec warning%& found\n ",
nspecErrors);
expsuccess = FALSE;
}
{
if (context_getLCLExpect () > 0)
{
- specErrors = message ("No spec errors found, expected %d\n ",
+ specErrors = message ("No spec warnings, expected %d\n ",
(int) context_getLCLExpect ());
expsuccess = FALSE;
}
if (context_numErrors () == context_getExpect ())
{
if (!isQuiet) {
- llmsg (message ("Finished LCLint checking --- "
- "%s%d code error%& found, as expected",
+ llmsg (message ("Finished checking --- "
+ "%s%d code warning%&, as expected",
specErrors, context_numErrors ()));
}
}
{
if (!isQuiet) {
llmsg (message
- ("Finished LCLint checking --- "
- "%s%d code error%& found, expected %d",
+ ("Finished checking --- "
+ "%s%d code warning%&, expected %d",
specErrors, context_numErrors (),
(int) context_getExpect ()));
}
if (!isQuiet)
{
- llmsg (message ("Finished LCLint checking --- "
- "%s%d code error%& found",
+ llmsg (message ("Finished checking --- "
+ "%s%d code warning%& found",
specErrors, context_numErrors ()));
}
{
if (!isQuiet) {
llmsg (message
- ("Finished LCLint checking --- "
- "%sno code errors found, expected %d",
+ ("Finished checking --- "
+ "%sno code warnings, expected %d",
specErrors,
(int) context_getExpect ()));
}
{
if (context_getLinesProcessed () > 0)
{
- if (!isQuiet) {
- llmsg (message ("Finished LCLint checking --- %sno code errors found",
- specErrors));
- }
+ if (cstring_isEmpty (specErrors))
+ {
+ if (!isQuiet)
+ {
+ llmsg (message ("Finished checking --- no warnings"));
+ }
+ }
+ else
+ if (!isQuiet)
+ {
+ llmsg (message ("Finished checking --- %sno code warnings",
+ specErrors));
+ }
}
else
{
if (!isQuiet) {
- llmsg (message ("Finished LCLint checking --- %sno code processed",
+ llmsg (message ("Finished checking --- %sno code processed",
specErrors));
}
}
llmsg (message ("Source files are .c, .h and %s files. If there is no suffix,",
LCL_EXTENSION));
- llmsg (message (" LCLint will look for <file>.c and <file>%s.", LCL_EXTENSION));
+ llmsg (message (" Splint will look for <file>.c and <file>%s.", LCL_EXTENSION));
llmsglit ("");
- llmsglit ("Use lclint -help <topic or flag name> for more information");
+ llmsglit ("Use splint -help <topic or flag name> for more information");
llmsglit ("");
llmsglit ("Topics:");
llmsglit ("");
"it is not advisible to use these, oftentimes one has no choice "
"when the system header files use compiler extensions. ");
llmsglit ("");
- llmsglit ("LCLint supports some of the GNU (gcc) compiler extensions, "
+ llmsglit ("Splint supports some of the GNU (gcc) compiler extensions, "
"if the +gnuextensions flag is set. You may be able to workaround "
"other compiler extensions by using a pre-processor define. "
"Alternately, you can surround the unparseable code with");
llmsglit ("Missing type definitions --- an undefined type name will usually "
"lead to a parse error. This often occurs when a standard header "
"file defines some type that is not part of the standard library. ");
- llmsglit ("By default, LCLint does not process the local files corresponding "
+ llmsglit ("By default, Splint does not process the local files corresponding "
"to standard library headers, but uses a library specification "
"instead so dependencies on local system headers can be detected. "
"If another system header file that does not correspond to a "
"a parse error will result.");
llmsglit ("");
llmsglit ("If the parse error is inside a posix standard header file, the "
- "first thing to try is +posixlib. This make LCLint use "
+ "first thing to try is +posixlib. This makes Splint use "
"the posix library specification instead of reading the posix "
"header files.");
llmsglit ("");
llmsglit (" /*@=skipposixheaders@*/");
llmsglit (" # include <sys/local.h>");
llmsglit ("");
- llmsglit ("to force LCLint to process <sys/types.h>.");
+ llmsglit ("to force Splint to process <sys/types.h>.");
llmsglit ("");
- llmsglit ("At last resort, +trytorecover can be used to make LCLint attempt "
+ llmsglit ("At last resort, +trytorecover can be used to make Splint attempt "
"to continue after a parse error. This is usually not successful "
"and the author does not consider assertion failures when +trytorecover "
"is used to be bugs.");
llmsglit ("/*@i<n>@*/");
llgenindentmsgnoloc
(cstring_makeLiteral
- ("No errors will be reported from an /*@i<n>@*/ (e.g., /*@i3@*/) comment to the end of the line. If there are not exactly n errors suppressed from the comment point to the end of the line, LCLint will report an error."));
+ ("No errors will be reported from an /*@i<n>@*/ (e.g., /*@i3@*/) comment to the end of the line. If there are not exactly n errors suppressed from the comment point to the end of the line, Splint will report an error."));
llmsglit ("/*@t@*/, /*@t<n>@*/");
llgenindentmsgnoloc
(cstring_makeLiteral
llmsglit ("Mailing Lists");
llmsglit ("-------------");
llmsglit ("");
- llmsglit ("There are two mailing lists associated with LCLint: ");
+ llmsglit ("There are two mailing lists associated with Splint: ");
llmsglit ("");
llmsglit (" lclint-announce@virginia.edu");
llmsglit ("");
llmsglit ("References");
llmsglit ("----------");
llmsglit ("");
- llmsglit ("The LCLint web site is http://lclint.cs.virginia.edu");
- llmsglit ("");
- llmsglit ("Technical papers relating to LCLint include:");
- llmsglit ("");
- llmsglit (" David Evans. \"Static Detection of Dynamic Memory Errors\".");
- llmsglit (" SIGPLAN Conference on Programming Language Design and ");
- llmsglit (" Implementation (PLDI '96), Philadelphia, PA, May 1996.");
- llmsglit ("");
- llmsglit (" David Evans, John Guttag, Jim Horning and Yang Meng Tan. ");
- llmsglit (" \"LCLint: A Tool for Using Specifications to Check Code\".");
- llmsglit (" SIGSOFT Symposium on the Foundations of Software Engineering,");
- llmsglit (" December 1994.");
- llmsglit ("");
- llmsglit ("A general book on Larch is:");
- llmsglit ("");
- llmsglit (" Guttag, John V., Horning, James J., (with Garland, S. J., Jones, ");
- llmsglit (" K. D., Modet, A., and Wing, J. M.), \"Larch: Languages and Tools ");
- llmsglit (" for Formal Specification\", Springer-Verlag, 1993.");
+ llmsglit ("For more information, see the Splint web site: http://www.splint.org");
}
void
}
/*
-** cleans up temp files (if necessary)
-** exits lclint
+** cleans up temp files (if necessary) and exits
*/
/*@exits@*/ void
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** lltok.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** lslOpList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** lslinit.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** lslparse.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** lsymbol.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** lsymbolList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** lsymbolSet.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** ltoken.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** ltokenList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** macrocache.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mapping.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** message.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** messageLog.c (from slist_template.c)
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** metaStateConstraint.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** metaStateConstraintList.c (from slist_template.c)
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** metaStateExpression.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** metaStateInfo.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** metaStateSpecifier.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** metaStateTable.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** modifiesClause.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtAnnotationDecl.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtAnnotationList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtAnnotationsNode.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtContextNode.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtDeclarationNode.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtDeclarationPiece.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtDeclarationPieces.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtDefaultsDecl.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtDefaultsDeclList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtDefaultsNode.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtLoseReference.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtLoseReferenceList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtMergeClause.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtMergeClauseList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtMergeItem.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtMergeNode.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtTransferAction.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtTransferClause.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtTransferClauseList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtValuesNode.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtreader.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mtscanner.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** mttok.c - based on lltok.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** multiVal.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** nameChecks.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** osd.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** pairNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** paramNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** programNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** qtype.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** qual.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** qualList.c (from slist_template.c)
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** quantifierNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** randomNumbers.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2000 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** rangeTable.c
llquietbug
(message ("Range search limit exceeded, checking %q. "
"This either means there is a variable with at least "
- "%d indirections, or there is a bug in LCLint.",
+ "%d indirections, or there is a bug in Splint.",
sRef_unparse (sr),
RANGESEARCHLIMIT));
llquietbug
(message ("Range search limit exceeded, checking %q. "
"This either means there is a variable with at least "
- "%d indirections, or there is a bug in LCLint.",
+ "%d indirections, or there is a bug in Splint.",
sRef_unparse (sr),
RANGESEARCHLIMIT));
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** reader.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** replaceNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** storeRef.c
("Warning: reference base limit exceeded for %q. "
"This either means there is a variable with at least "
"%d indirections from this reference, or "
- "there is a bug in LCLint.",
+ "there is a bug in Splint.",
sRef_unparse (s),
MAXBASEDEPTH),
g_currentloc);
("Warning: check definition limit exceeded, checking %q. "
"This either means there is a variable with at least "
"%d indirections apparent in the program text, or "
- "there is a bug in LCLint.",
+ "there is a bug in Splint.",
sRef_unparse (fref),
MAXDEPTH),
g_currentloc);
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** sRefList.c (from slist_template.c)
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** sRefSet.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** sRefSetList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** sRefTable.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** scan.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** scanline.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** sigNodeSet.c
#define LST_unionTOKEN 300
#define LST_BADTOKEN 301
-#line 36 "signature.y"
+#line 32 "signature.y"
# include <stdio.h>
/*@-nullassign@*/
-#line 73 "signature.y"
+#line 69 "signature.y"
typedef union {
ltoken ltok; /* a leaf is also an ltoken */
unsigned int count;
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 141, 143, 148, 152, 158, 160, 164, 166, 168, 170,
- 172, 174, 176, 178, 180, 183, 186, 189, 192, 195,
- 198, 203, 208, 210, 212, 215, 217, 220, 222, 225,
- 227, 230, 233, 235, 238, 240, 243, 249
+ 137, 139, 144, 148, 154, 156, 160, 162, 164, 166,
+ 168, 170, 172, 174, 176, 179, 182, 185, 188, 191,
+ 194, 199, 204, 206, 208, 211, 213, 216, 218, 221,
+ 223, 226, 229, 231, 234, 236, 239, 245
};
#endif
switch (yyn) {
case 1:
-#line 141 "signature.y"
+#line 137 "signature.y"
{ lslOpList_free (yyvsp[0].operators); ;
break;}
case 2:
-#line 144 "signature.y"
+#line 140 "signature.y"
{ lslOpList x = lslOpList_new ();
g_importedlslOp = yyvsp[0].operator;
lslOpList_add (x, yyvsp[0].operator);
yyval.operators = x; ;
break;}
case 3:
-#line 149 "signature.y"
+#line 145 "signature.y"
{ lslOpList_add (yyvsp[-1].operators, yyvsp[0].operator);
yyval.operators = yyvsp[-1].operators; ;
break;}
case 4:
-#line 153 "signature.y"
+#line 149 "signature.y"
{ yyval.operator = makelslOpNode (yyvsp[-2].name, yyvsp[0].signature); ;
break;}
case 5:
-#line 159 "signature.y"
+#line 155 "signature.y"
{ yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
break;}
case 6:
-#line 161 "signature.y"
+#line 157 "signature.y"
{ yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
break;}
case 7:
-#line 165 "signature.y"
+#line 161 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
break;}
case 8:
-#line 167 "signature.y"
+#line 163 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
break;}
case 9:
-#line 169 "signature.y"
+#line 165 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
break;}
case 10:
-#line 171 "signature.y"
+#line 167 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
break;}
case 11:
-#line 173 "signature.y"
+#line 169 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
break;}
case 12:
-#line 175 "signature.y"
+#line 171 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
break;}
case 13:
-#line 177 "signature.y"
+#line 173 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
break;}
case 14:
-#line 179 "signature.y"
+#line 175 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
break;}
case 15:
-#line 181 "signature.y"
+#line 177 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM,
opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
break;}
case 16:
-#line 184 "signature.y"
+#line 180 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE,
opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
break;}
case 17:
-#line 187 "signature.y"
+#line 183 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE,
opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
break;}
case 18:
-#line 190 "signature.y"
+#line 186 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM,
opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
break;}
case 19:
-#line 193 "signature.y"
+#line 189 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM,
opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
break;}
case 20:
-#line 196 "signature.y"
+#line 192 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT,
opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
break;}
case 21:
-#line 199 "signature.y"
+#line 195 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT,
opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
break;}
case 22:
-#line 204 "signature.y"
+#line 200 "signature.y"
{ yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP,
opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
break;}
case 23:
-#line 209 "signature.y"
+#line 205 "signature.y"
{ yyval.ltok = yyvsp[0].ltok; ;
break;}
case 24:
-#line 211 "signature.y"
+#line 207 "signature.y"
{ yyval.ltok = yyvsp[0].ltok; ;
break;}
case 25:
-#line 213 "signature.y"
+#line 209 "signature.y"
{ yyval.ltok = yyvsp[0].ltok; ;
break;}
case 26:
-#line 216 "signature.y"
+#line 212 "signature.y"
{ yyval.count = 0; ;
break;}
case 27:
-#line 218 "signature.y"
+#line 214 "signature.y"
{ yyval.count = yyvsp[0].count; ;
break;}
case 28:
-#line 221 "signature.y"
+#line 217 "signature.y"
{ yyval.count = 1; ;
break;}
case 29:
-#line 223 "signature.y"
+#line 219 "signature.y"
{ yyval.count = yyvsp[-2].count + 1; ;
break;}
case 30:
-#line 226 "signature.y"
+#line 222 "signature.y"
{ yyval.ltok = yyvsp[0].ltok; ;
break;}
case 31:
-#line 228 "signature.y"
+#line 224 "signature.y"
{ yyval.ltok = yyvsp[0].ltok; ;
break;}
case 32:
-#line 231 "signature.y"
+#line 227 "signature.y"
{ yyval.signature = makesigNode (yyvsp[-1].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
break;}
case 33:
-#line 234 "signature.y"
+#line 230 "signature.y"
{ yyval.ltokenList = ltokenList_new (); ;
break;}
case 34:
-#line 236 "signature.y"
+#line 232 "signature.y"
{ yyval.ltokenList = yyvsp[0].ltokenList; ;
break;}
case 35:
-#line 239 "signature.y"
+#line 235 "signature.y"
{ yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
break;}
case 36:
-#line 241 "signature.y"
+#line 237 "signature.y"
{ yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
break;}
case 37:
-#line 244 "signature.y"
+#line 240 "signature.y"
{
yyval.ltok = yyvsp[0].ltok;
ltoken_setText (yyval.ltok, processTraitSortId (ltoken_getText (yyvsp[0].ltok)));
;
break;}
case 38:
-#line 250 "signature.y"
+#line 246 "signature.y"
{ yyval.ltok = yyvsp[0].ltok; ;
break;}
}
}
return 1;
}
-#line 251 "signature.y"
+#line 247 "signature.y"
# include "bison.reset"
/*;-*-C-*-;
-** Copyright (c) Massachusetts Institute of Technology 1994-1998.
-** All Rights Reserved.
-** Unpublished rights reserved under the copyright laws of
-** the United States.
+** Splint - annotation-assisted static program checker
+** Copyright (C) 1994-2001 University of Virginia,
+** Massachusetts Institute of Technology
**
-** THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
-** OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
-**
-** This code is distributed freely and may be used freely under the
-** following conditions:
-**
-** 1. This notice may not be removed or altered.
+** This program is free software; you can redistribute it and/or modify it
+** under the terms of the GNU General Public License as published by the
+** Free Software Foundation; either version 2 of the License, or (at your
+** option) any later version.
+**
+** This program is distributed in the hope that it will be useful, but
+** WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+** General Public License for more details.
+**
+** The GNU General Public License is available from http://www.gnu.org/ or
+** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+** MA 02111-1307, USA.
**
-** 2. Works derived from this code are not distributed for
-** commercial gain without explicit permission from MIT
-** (for permission contact lclint-request@sds.lcs.mit.edu).
+** For information on lclint: lclint-request@cs.virginia.edu
+** To report a bug: lclint-bug@cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
-** Copyright (c) Massachusetts Institute of Technology, 1993
-** All Rights Reserved. Unpublished rights reserved
-** under the copyright laws of the United States.
-**++
-** FACILITY: LSLC
-**
-** MODULE DESCRIPTION:
+** signature.y
**
-** FILENAME: signature.y
+** Grammar for parsing LSL signatures.
**
-** PURPOSE: bison grammar for LSL signatures.
-**
-** AUTHOR:
-** Yang Meng Tan, Massachusetts Institute of Technology
+** Original author: Yang Meng Tan, Massachusetts Institute of Technology
*/
%{
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** sort.c
}
else
{
- llcontbug (message ("Invalid sort in sort_dump: sort %d; sortname: %s. This may result from using .lcs files produced by an old version of LCLint. Remove the .lcs files, and rerun LCLint.",
+ llcontbug (message ("Invalid sort in sort_dump: sort %d; sortname: %s. This may result from using .lcs files produced by an old version of LCLint. Remove the .lcs files, and rerun Splint.",
i, lsymbol_toString (s->name)));
fprintf (f, "sort _error_ ");
}
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** sortList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** sortSet.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** sortSetList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2000 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** source.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2000 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** specialClauses.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** structDeclNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** stateClause.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** stateClauseList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** stateCombinationTable.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
# include "lclintMacros.nf"
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** stateValue.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** storeRefNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** structNames.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** symtable.c
/* symtable_disp (stable); */
- if (k != SPE_GLOBAL && k != SPE_INVALID) /* fixed for LCLint */
+ if (k != SPE_GLOBAL && k != SPE_INVALID) /* fixed for Splint */
{
llbug (message ("%q: symtable_enterType: expect global scope. (type: %s)",
ltoken_unparseLoc (ti->id),
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** syntable.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** termNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** tokentable.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** traitRefNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** transferChecks.c
("Check definition limit exceeded, checking %q. "
"This either means there is a variable with at least "
"%d indirections apparent in the program text, or "
- "there is a bug in LCLint.",
+ "there is a bug in Splint.",
sRef_unparse (fref),
MAXDEPTH));
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** typeIdSet.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** typeNameNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** uentry.c
if (functionConstraint_isDefined (ue->info->fcn->preconditions))
{
/* drl 11-29-2001
- I changed this so it didn't appear as an LCLint bug
+ I changed this so it didn't appear as a Splint bug
among other things this gets triggered when there is
- a function with two requires clauses. Now LCLint
+ a function with two requires clauses. Now Splint
prints an error and tries to conjoin the lists.
*/
llparseerror
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** uentryList.c (from slist_template.c)
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** usymIdSet.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** usymtab
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** usymtab_interface.c
**
** Grammar interface to symtab.
**
-** The LCLint parser will build symbol tables for abstract types and
+** The Splint parser will build symbol tables for abstract types and
** function declarations.
**
*/
llmsg (message
("%q: Warning: object and type modifications "
- "not understood by LCLint",
+ "not understood by Splint",
fileloc_unparse (loc)));
fileloc_free (loc);
shownWarning = TRUE;
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** valueTable.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** varDeclarationNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** varKinds.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** varNodeList.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** warnClause.c
/*
-** LCLint - annotation-assisted static program checker
+** Splint - annotation-assisted static program checker
** Copyright (C) 1994-2001 University of Virginia,
** Massachusetts Institute of Technology
**
**
** For information on lclint: lclint-request@cs.virginia.edu
** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For more information: http://www.splint.org
*/
/*
** ynm.c
## Use this to configure diff output
DIFFFLAGS = -u
-## Set up the lclint commands
+## Set up the splint commands
-LCLINT = $(top_builddir)/src/lclint$(EXEEXT)
+SPLINT = $(top_builddir)/src/splint$(EXEEXT)
unexport LARCH_PATH
unexport LCLIMPORTDIR
### This is horrible! Can't we make top_builddir absolute?
-LCLINTNEST = ../$(top_builddir)/src/lclint$(EXEEXT)
+SPLINTNEST = ../$(top_builddir)/src/splint$(EXEEXT)
-LCLINTPNEST = @$(LCLINTNEST)
-LCLINTP = @$(LCLINT)
+SPLINTPNEST = @$(SPLINTNEST)
+SPLINTP = @$(SPLINT)
-# Make sure .lclintrc files are not used so test results do not
+# Make sure .splintrc files are not used so test results do not
# depend on local settings.
-LCLINTRN = $(LCLINTP) -nof -hints -booltype "bool"
-LCLINTR = $(LCLINTRN) -exportlocal +debugfcnconstraint
+SPLINTRN = $(SPLINTP) -nof -hints -booltype "bool"
+SPLINTR = $(SPLINTRN) -exportlocal +debugfcnconstraint
-LCLINTRNNEST = $(LCLINTPNEST) -nof -hints -booltype "bool"
-LCLINTRNEST = $(LCLINTRNNEST) -exportlocal +debugfcnconstraint
+SPLINTRNNEST = $(SPLINTPNEST) -nof -hints -booltype "bool"
+SPLINTRNEST = $(SPLINTRNNEST) -exportlocal +debugfcnconstraint
## Currently disabled tests:
## fileio tainted mergestate nullret nullassign warnuse metastate \
INTEGTESTS = db1 db2 db3
INTEGEXPECTS = $(addsuffix .expect, $(INTEGTESTS))
-LCLINTTESTS = $(UNITTESTS) $(INTEGTESTS)
+SPLINTTESTS = $(UNITTESTS) $(INTEGTESTS)
QUICKTESTS = db3
.PHONY: version
version:
- -$(LCLINTP) -help version
+ -$(SPLINTP) -help version
.PHONY: help
help:
- -@$(LCLINTP)
- -@LARCH_PATH=/dev/null; $(LCLINT) empty.lcl
- -@$(LCLINTP) -help
- -@$(LCLINTP) -asdf
- -@$(LCLINTP) +boolint +boolint
- -@$(LCLINTP) -help flags alpha
- -@$(LCLINTP) -help flags all
+ -@$(SPLINTP)
+ -@LARCH_PATH=/dev/null; $(SPLINT) empty.lcl
+ -@$(SPLINTP) -help
+ -@$(SPLINTP) -asdf
+ -@$(SPLINTP) +boolint +boolint
+ -@$(SPLINTP) -help flags alpha
+ -@$(SPLINTP) -help flags all
.PHONY: clean-local
clean-local:
-cd db2; $(MAKE) clean
-cd db3; $(MAKE) clean
-## All tests need lclint to be built
+## All tests need splint to be built
-$(LCLINTTESTS): $(LCLINT)
+$(SPLINTTESTS): $(SPLINT)
-$(LCLINT):
+$(SPLINT):
cd $(top_builddir)/src; $(MAKE)
## This is a kludgey way of processing the output to make it match exactly
## not supported).
## The tests should really be re-done as shell-scripts or something... maybe
## autotest could be used once it's finished.
-CLEANOUTPUT = $(GREP) -v "LCLint 3." | $(GREP) -v "$(LCLINT)" | $(GREP) -v "^make.*\[[1-9]*\]:"
+CLEANOUTPUT = $(GREP) -v "Splint 3." | $(GREP) -v "$(SPLINT)" | $(GREP) -v "^make.*\[[1-9]*\]:"
## Not real C code
@echo "Testing $(PACKAGE) $(VERSION)..."
@echo
@echo "Version Info:"
- @$(LCLINTP) -help version
- @$(LCLINTP) -help vars
+ @$(SPLINTP) -help version
+ @$(SPLINTP) -help vars
@echo ""
@echo "Unit tests:"
@echo ""
.PHONY: abstptr
abstptr:
- $(LCLINTR) abstptr -expect 9
- $(LCLINTR) abstptr +voidabstract -expect 6
+ $(SPLINTR) abstptr -expect 9
+ $(SPLINTR) abstptr +voidabstract -expect 6
.PHONY: abstract
abstract:
- $(LCLINTR) abst_t.lcl commentcmd.c -expect 15
+ $(SPLINTR) abst_t.lcl commentcmd.c -expect 15
.PHONY: alias
alias:
- $(LCLINTR) +lh mut
- $(LCLINTR) mut alias +globalias -expect 19
- $(LCLINTR) mut alias2 +globalias -expect 17
- $(LCLINTR) +lh alias3 -expect 14
- $(LCLINTR) +lh alias4 +boolint
- $(LCLINTR) alias4 -pred +retalias -expect 6
- $(LCLINTR) +lh alias5 +memchecks -null -specundef -expect 5
+ $(SPLINTR) +lh mut
+ $(SPLINTR) mut alias +globalias -expect 19
+ $(SPLINTR) mut alias2 +globalias -expect 17
+ $(SPLINTR) +lh alias3 -expect 14
+ $(SPLINTR) +lh alias4 +boolint
+ $(SPLINTR) alias4 -pred +retalias -expect 6
+ $(SPLINTR) +lh alias5 +memchecks -null -specundef -expect 5
.PHONY: alttypes
alttypes:
- $(LCLINTR) alttypes.c -expect 2
+ $(SPLINTR) alttypes.c -expect 2
###
### evans 2001-06-07 - updated nameCheck.c to reflect C9X.
.PHONY: ansireserved
ansireserved:
- $(LCLINTR) ansireserved.c +ansireserved -nolib -expect 9
- $(LCLINTR) ansireserved.c +ansireserved +ansireservedlocal -nolib -expect 11
- $(LCLINTRN) ansireserved.c +checks -exportlocal -exportheadervar -exportheader -expect 12
- $(LCLINTR) ansireserved2.c +ansireserved -expect 1
+ $(SPLINTR) ansireserved.c +ansireserved -nolib -expect 9
+ $(SPLINTR) ansireserved.c +ansireserved +ansireservedlocal -nolib -expect 11
+ $(SPLINTRN) ansireserved.c +checks -exportlocal -exportheadervar -exportheader -expect 12
+ $(SPLINTR) ansireserved2.c +ansireserved -expect 1
.PHONY: argorder
argorder:
- $(LCLINTR) argorder.c -expect 4
- $(LCLINTR) argorder2 -expect 5
- $(LCLINTR) argorder3.c -expect 8
- $(LCLINTR) argorder4 -expect 9
- $(LCLINTR) argorder4 -evalorder -expect 1
- $(LCLINTR) argorder5.c +evalorderuncon -expect 3
+ $(SPLINTR) argorder.c -expect 4
+ $(SPLINTR) argorder2 -expect 5
+ $(SPLINTR) argorder3.c -expect 8
+ $(SPLINTR) argorder4 -expect 9
+ $(SPLINTR) argorder4 -evalorder -expect 1
+ $(SPLINTR) argorder5.c +evalorderuncon -expect 3
.PHONY: args
args:
- $(LCLINTR) args -noeffect -expect 12
+ $(SPLINTR) args -noeffect -expect 12
.PHONY: blocks
blocks:
- $(LCLINTR) blocks.c -expect 4
- $(LCLINTR) blocks.c +ifblock +elseifcomplete -expect 7
- $(LCLINTR) blocks.c -ifempty +whileempty +whileblock -expect 3
- $(LCLINTR) blocks.c -ifempty +forempty +forblock -expect 3
- $(LCLINTR) blocks.c +allempty -expect 6
- $(LCLINTRN) blocks.c +strict -exportlocal +partial -exportheader -expect 11
+ $(SPLINTR) blocks.c -expect 4
+ $(SPLINTR) blocks.c +ifblock +elseifcomplete -expect 7
+ $(SPLINTR) blocks.c -ifempty +whileempty +whileblock -expect 3
+ $(SPLINTR) blocks.c -ifempty +forempty +forblock -expect 3
+ $(SPLINTR) blocks.c +allempty -expect 6
+ $(SPLINTRN) blocks.c +strict -exportlocal +partial -exportheader -expect 11
.PHONY: break
break:
- $(LCLINTR) break.c -expect 4
- $(LCLINTR) break.c +deepbreak -expect 6
- $(LCLINTR) break.c +deepbreak -looploopbreak -expect 5
+ $(SPLINTR) break.c -expect 4
+ $(SPLINTR) break.c +deepbreak -expect 6
+ $(SPLINTR) break.c +deepbreak -looploopbreak -expect 5
.PHONY: cases
cases:
- $(LCLINTR) cases.c -expect 5
- $(LCLINTR) cases2.c -expect 2
- $(LCLINTRN) cases2.c +checks -exportlocal -exportheader -expect 3
- $(LCLINTRN) cases2.c +checks -exportlocal -exportheader -branchstate -expect 3
+ $(SPLINTR) cases.c -expect 5
+ $(SPLINTR) cases2.c -expect 2
+ $(SPLINTRN) cases2.c +checks -exportlocal -exportheader -expect 3
+ $(SPLINTRN) cases2.c +checks -exportlocal -exportheader -branchstate -expect 3
.PHONY: cast
cast:
- $(LCLINTR) cast -accessmodule -expect 20
- $(LCLINTRN) cast2.c +checks -exportlocal -exportheader -expect 3
+ $(SPLINTR) cast -accessmodule -expect 20
+ $(SPLINTRN) cast2.c +checks -exportlocal -exportheader -expect 3
### Two addition errors detected with 2.5 with -numliteral.
.PHONY: charlit
charlit:
- $(LCLINTR) +hints charlit.c -expect 4
- $(LCLINTR) +hints -numliteral charlit.c -expect 6
- $(LCLINTR) +hints charlit.c +charintliteral +ignoresigns
+ $(SPLINTR) +hints charlit.c -expect 4
+ $(SPLINTR) +hints -numliteral charlit.c -expect 6
+ $(SPLINTR) +hints charlit.c +charintliteral +ignoresigns
.PHONY: clauses
clauses:
- $(LCLINTR) clauses.c +memchecks -expect 4
- $(LCLINTR) clauses2.c +memchecks
- $(LCLINTR) clauses3.c +memchecks -expect 2
- $(LCLINTR) clauses3.c +memchecks +unixlib -expect 3
+ $(SPLINTR) clauses.c +memchecks -expect 4
+ $(SPLINTR) clauses2.c +memchecks
+ $(SPLINTR) clauses3.c +memchecks -expect 2
+ $(SPLINTR) clauses3.c +memchecks +unixlib -expect 3
.PHONY: commentchar
commentchar:
- $(LCLINTR) commentchar.c -expect 4
- $(LCLINTR) -commentchar '#' commentchar.c -expect 4
+ $(SPLINTR) commentchar.c -expect 4
+ $(SPLINTR) -commentchar '#' commentchar.c -expect 4
.PHONY: controldepth
controldepth:
- $(LCLINTR) +hints -controlnestdepth 2 controldepth.c -expect 2
- $(LCLINTR) +hints -controlnestdepth 1 controldepth.c -expect 2
+ $(SPLINTR) +hints -controlnestdepth 2 controldepth.c -expect 2
+ $(SPLINTR) +hints -controlnestdepth 1 controldepth.c -expect 2
.PHONY: compdestroy
compdestroy:
- $(LCLINTRN) compdestroy.c +checks -exportlocal -exportheader -expect 1
- $(LCLINTRN) compdestroy.c +checks -exportlocal -exportheader +strictdestroy -expect 2
- $(LCLINTRN) compdestroy.c +checks -exportlocal -exportheader +strictdestroy +strictusereleased -expect 3
- $(LCLINTRN) compdestroy.c +strict +partial -exportheader -expect 3
+ $(SPLINTRN) compdestroy.c +checks -exportlocal -exportheader -expect 1
+ $(SPLINTRN) compdestroy.c +checks -exportlocal -exportheader +strictdestroy -expect 2
+ $(SPLINTRN) compdestroy.c +checks -exportlocal -exportheader +strictdestroy +strictusereleased -expect 3
+ $(SPLINTRN) compdestroy.c +strict +partial -exportheader -expect 3
.PHONY: constannot
constannot:
- ${LCLINTRN} constannot.c +arraybounds -exportlocal -expect 2
+ ${SPLINTRN} constannot.c +arraybounds -exportlocal -expect 2
.PHONY: csyntax
csyntax:
- $(LCLINTR) +quiet -incondefs csyntax.c -expect 1
- $(LCLINTR) +quiet csyntax2.c -expect 2
- $(LCLINTR) +quiet csyntax3.c -expect 1
- $(LCLINTR) +quiet -incondefs csyntax4.c
- $(LCLINTR) +quiet csyntax5.c
- $(LCLINTR) +quiet csyntax6.c
- $(LCLINTR) +quiet csyntax7.c
- $(LCLINTR) +quiet csyntax8.c
- $(LCLINTR) +quiet csyntax9.c
- $(LCLINTR) +quiet csyntax10.c
- $(LCLINTR) +quiet csyntax11.c
- $(LCLINTR) +quiet csyntax12.c
- $(LCLINTR) +quiet csyntax13.c -expect 1
- $(LCLINTR) +quiet csyntax14.c
- $(LCLINTR) +quiet csyntax15.c
- $(LCLINTR) +quiet csyntax16.c -expect 2
- $(LCLINTR) +quiet csyntax17.c -expect 3
+ $(SPLINTR) +quiet -incondefs csyntax.c -expect 1
+ $(SPLINTR) +quiet csyntax2.c -expect 2
+ $(SPLINTR) +quiet csyntax3.c -expect 1
+ $(SPLINTR) +quiet -incondefs csyntax4.c
+ $(SPLINTR) +quiet csyntax5.c
+ $(SPLINTR) +quiet csyntax6.c
+ $(SPLINTR) +quiet csyntax7.c
+ $(SPLINTR) +quiet csyntax8.c
+ $(SPLINTR) +quiet csyntax9.c
+ $(SPLINTR) +quiet csyntax10.c
+ $(SPLINTR) +quiet csyntax11.c
+ $(SPLINTR) +quiet csyntax12.c
+ $(SPLINTR) +quiet csyntax13.c -expect 1
+ $(SPLINTR) +quiet csyntax14.c
+ $(SPLINTR) +quiet csyntax15.c
+ $(SPLINTR) +quiet csyntax16.c -expect 2
+ $(SPLINTR) +quiet csyntax17.c -expect 3
.PHONY: czechnames
czechnames:
- $(LCLINTR) czechnames.c
- $(LCLINTR) +hints +czech czechnames.c -expect 2
- $(LCLINTR) +hints +czech -czechvars czechnames.c -expect 1
- $(LCLINTR) +hints +czech -accessczech czechnames.c -expect 6
+ $(SPLINTR) czechnames.c
+ $(SPLINTR) +hints +czech czechnames.c -expect 2
+ $(SPLINTR) +hints +czech -czechvars czechnames.c -expect 1
+ $(SPLINTR) +hints +czech -accessczech czechnames.c -expect 6
.PHONY: czechoslovaknames
czechoslovaknames:
- $(LCLINTR) +hints +czechoslovak czechnames.c -expect 1
- $(LCLINTR) +hints +czechoslovak slovaknames.c -expect 1
- $(LCLINTR) +hints +czechoslovak +slovakvars slovaknames.c -expect 2
+ $(SPLINTR) +hints +czechoslovak czechnames.c -expect 1
+ $(SPLINTR) +hints +czechoslovak slovaknames.c -expect 1
+ $(SPLINTR) +hints +czechoslovak +slovakvars slovaknames.c -expect 2
###
### deadparam added 2001-05-27
.PHONY: deadparam
deadparam:
- ${LCLINTR} deadparam.c -expect 3
+ ${SPLINTR} deadparam.c -expect 3
#
# Was expect 3 before 2.4. Earlier versions did not handle implicit
.PHONY: decl
decl:
- $(LCLINTR) decl.c -expect 2
- $(LCLINTRN) decl.c +strict -exportlocal -expect 5
- $(LCLINTR) decl2 -expect 4
+ $(SPLINTR) decl.c -expect 2
+ $(SPLINTRN) decl.c +strict -exportlocal -expect 5
+ $(SPLINTR) decl2 -expect 4
.PHONY: enum
enum:
- $(LCLINTR) enum -expect 16
- $(LCLINTR) enum -misscase -expect 14
+ $(SPLINTR) enum -expect 16
+ $(SPLINTR) enum -misscase -expect 14
.PHONY: exports
exports:
- $(LCLINTR) exports.c +exporttype +exportvar +exportfcn +topuse +typeuse -expect 6
- $(LCLINTR) exports.c +exportany -expect 3
- $(LCLINTR) exports.c
+ $(SPLINTR) exports.c +exporttype +exportvar +exportfcn +topuse +typeuse -expect 6
+ $(SPLINTR) exports.c +exportany -expect 3
+ $(SPLINTR) exports.c
.PHONY: external
external:
- $(LCLINTR) external.c +partial
- $(LCLINTR) external.c +partial +distinctexternalnames -expect 2
- $(LCLINTR) external.c -nolib +partial -externalnamelength 3 -expect 3
- $(LCLINTR) external.c -nolib +partial -externalnamelength 3 +externalnamecaseinsensitive -expect 3
- $(LCLINTR) external.c +partial -externalnamelength 3 -expect 4
+ $(SPLINTR) external.c +partial
+ $(SPLINTR) external.c +partial +distinctexternalnames -expect 2
+ $(SPLINTR) external.c -nolib +partial -externalnamelength 3 -expect 3
+ $(SPLINTR) external.c -nolib +partial -externalnamelength 3 +externalnamecaseinsensitive -expect 3
+ $(SPLINTR) external.c +partial -externalnamelength 3 -expect 4
.PHONY: fields
fields:
- $(LCLINTR) fields.c +memchecks -expect 6
- $(LCLINTR) fields2.c +memchecks -expect 5
- $(LCLINTR) fields3.c +memchecks
+ $(SPLINTR) fields.c +memchecks -expect 6
+ $(SPLINTR) fields2.c +memchecks -expect 5
+ $(SPLINTR) fields3.c +memchecks
.PHONY: flags
flags:
- $(LCLINTR) flags.c -expect 8
- $(LCLINTR) +nocomments flags.c -expect 2
+ $(SPLINTR) flags.c -expect 8
+ $(SPLINTR) +nocomments flags.c -expect 2
### Added 2001-06-02
.PHONY: forbody
forbody:
- ${LCLINTR} forbody.c -expect 2
+ ${SPLINTR} forbody.c -expect 2
### Added 2001-06-03
.PHONY: format
format:
- ${LCLINTR} format.c -expect 3
- ${LCLINTR} format.c -formatconst
+ ${SPLINTR} format.c -expect 3
+ ${SPLINTR} format.c -formatconst
# two new errors (invalid lhs)
.PHONY: funcpointer
funcpointer:
- $(LCLINTR) +memchecks +noparams funcpointer.c -expect 18
+ $(SPLINTR) +memchecks +noparams funcpointer.c -expect 18
.PHONY: glob
glob:
- $(LCLINTR) glob -expect 4
- $(LCLINTR) glob -globuse -expect 3
- $(LCLINTR) glob +globunspec -expect 6
+ $(SPLINTR) glob -expect 4
+ $(SPLINTR) glob -globuse -expect 3
+ $(SPLINTR) glob +globunspec -expect 6
.PHONY: globals
globals:
- $(LCLINTR) -modifies globals.c -expect 5
- $(LCLINTR) -modifies globals.c +allglobals -expect 6
- $(LCLINTR) -modifies globals.c +impcheckedglobals -expect 6
- $(LCLINTR) -modifies globals.c -globals -checkstrictglobals -expect 2
- $(LCLINTR) -modifies globals.c +globunspec -expect 6
- $(LCLINTR) -modifies globals.c +globunspec +allglobals -expect 8
+ $(SPLINTR) -modifies globals.c -expect 5
+ $(SPLINTR) -modifies globals.c +allglobals -expect 6
+ $(SPLINTR) -modifies globals.c +impcheckedglobals -expect 6
+ $(SPLINTR) -modifies globals.c -globals -checkstrictglobals -expect 2
+ $(SPLINTR) -modifies globals.c +globunspec -expect 6
+ $(SPLINTR) -modifies globals.c +globunspec +allglobals -expect 8
# Was -accessfile
.PHONY: impabstract
impabstract:
- $(LCLINTR) -accessmodule impabstract.c
- $(LCLINTR) -accessmodule +hints +impabstract impabstract.c -expect 2
- $(LCLINTR) -accessmodule +hints +impabstract impabstract -expect 4
+ $(SPLINTR) -accessmodule impabstract.c
+ $(SPLINTR) -accessmodule +hints +impabstract impabstract.c -expect 2
+ $(SPLINTR) -accessmodule +hints +impabstract impabstract -expect 4
### evans 2001-10-14: Expected errors updated
.PHONY: init
init:
- $(LCLINTR) init.c -expect 14
- $(LCLINTRN) init.c +checks -exportlocal -exportheadervar -expect 17
+ $(SPLINTR) init.c -expect 14
+ $(SPLINTRN) init.c +checks -exportlocal -exportheadervar -expect 17
.PHONY: inparam
inparam:
- $(LCLINTR) inparam.c -expect 2
- $(LCLINTR) +impouts inparam.c -expect 1
+ $(SPLINTR) inparam.c -expect 2
+ $(SPLINTR) +impouts inparam.c -expect 1
.PHONY: internal
internal:
- $(LCLINTR) internal.c -expect 1
- $(LCLINTR) internal.c +distinctinternalnames -expect 2
- $(LCLINTR) internal.c -internalnamelen 28 -expect 3
- $(LCLINTR) internal.c +internalnamecaseinsensitive -expect 3
- $(LCLINTR) internal.c +internalnamecaseinsensitive +internalnamelookalike -expect 11
+ $(SPLINTR) internal.c -expect 1
+ $(SPLINTR) internal.c +distinctinternalnames -expect 2
+ $(SPLINTR) internal.c -internalnamelen 28 -expect 3
+ $(SPLINTR) internal.c +internalnamecaseinsensitive -expect 3
+ $(SPLINTR) internal.c +internalnamecaseinsensitive +internalnamelookalike -expect 11
###
### iter
.PHONY: iter
iter:
- $(LCLINTR) iter -expect 14 -lclexpect 1
- $(LCLINTR) iter2.c -expect 12
+ $(SPLINTR) iter -expect 14 -lclexpect 1
+ $(SPLINTR) iter2.c -expect 12
.PHONY: keep
keep:
- $(LCLINTR) keep.c +memchecks -expect 6
+ $(SPLINTR) keep.c +memchecks -expect 6
### libs
### 2001-05-22: 2 new errors found (fixed spec of signal)
.PHONY: libs
libs:
- $(LCLINTR) libs.c +longunsignedunsignedintegral -expect 18
- $(LCLINTR) libs.c -expect 22
- $(LCLINTR) libs.c +globunspec +modunspec -expect 25
- $(LCLINTR) libs.c +strictlib +globunspec +modunspec -expect 42
+ $(SPLINTR) libs.c +longunsignedunsignedintegral -expect 18
+ $(SPLINTR) libs.c -expect 22
+ $(SPLINTR) libs.c +globunspec +modunspec -expect 25
+ $(SPLINTR) libs.c +strictlib +globunspec +modunspec -expect 42
.PHONY: lintcomments
lintcomments:
- $(LCLINTR) lintcomments.c -expect 4
- $(LCLINTR) lintcomments.c -warnlintcomments -expect 1
- $(LCLINTR) lintcomments.c -lintcomments -expect 4
+ $(SPLINTR) lintcomments.c -expect 4
+ $(SPLINTR) lintcomments.c -warnlintcomments -expect 1
+ $(SPLINTR) lintcomments.c -lintcomments -expect 4
.PHONY: list
list:
- $(LCLINTR) list.c -expect 3
+ $(SPLINTR) list.c -expect 3
.PHONY: macros
macros:
- $(LCLINTR) macros -expect 17
- $(LCLINTR) macros.c +allmacros -expect 34
- $(LCLINTR) macros.c +fcnmacros -expect 31
+ $(SPLINTR) macros -expect 17
+ $(SPLINTR) macros.c +allmacros -expect 34
+ $(SPLINTR) macros.c +fcnmacros -expect 31
.PHONY: macrosef
macrosef:
- $(LCLINTR) macrosef -expect 4
- $(LCLINTR) macrosef.c +allmacros -expect 3
- $(LCLINTR) macrosef.c +allmacros +sefuncon -expect 4
+ $(SPLINTR) macrosef -expect 4
+ $(SPLINTR) macrosef.c +allmacros -expect 3
+ $(SPLINTR) macrosef.c +allmacros +sefuncon -expect 4
.PHONY: merge
merge:
- $(LCLINTRN) merge.c +checks -exportlocal -exportheadervar -exportheader -expect 3
+ $(SPLINTRN) merge.c +checks -exportlocal -exportheadervar -exportheader -expect 3
.PHONY: modifies
modifies:
- $(LCLINTR) modifies.c modclient.c +impcheckedstatics +mustmod -expect 7
+ $(SPLINTR) modifies.c modclient.c +impcheckedstatics +mustmod -expect 7
.PHONY: modtest
modtest:
- $(LCLINTR) modtest -expect 10
- $(LCLINTR) modtest +modunspec -expect 13
- $(LCLINTR) modtest +mustmod -expect 14
+ $(SPLINTR) modtest -expect 10
+ $(SPLINTR) modtest +modunspec -expect 13
+ $(SPLINTR) modtest +mustmod -expect 14
.PHONY: moduncon
moduncon:
- $(LCLINTR) moduncon.c +moduncon -memchecks -expect 4
- $(LCLINTRN) moduncon.c +strict -exportlocal -expect 22
+ $(SPLINTR) moduncon.c +moduncon -memchecks -expect 4
+ $(SPLINTRN) moduncon.c +strict -exportlocal -expect 22
.PHONY: mongoincludes
mongoincludes:
- $(LCLINTR) mongoincludes.c -includenest 1 -expect 19
- $(LCLINTR) mongoincludes.c -includenest 2 -expect 10
- $(LCLINTR) mongoincludes.c -includenest 3 -expect 4
- $(LCLINTR) mongoincludes.c -includenest 4 -expect 1
- $(LCLINTR) mongoincludes.c -includenest 5 -expect 0
+ $(SPLINTR) mongoincludes.c -includenest 1 -expect 19
+ $(SPLINTR) mongoincludes.c -includenest 2 -expect 10
+ $(SPLINTR) mongoincludes.c -includenest 3 -expect 4
+ $(SPLINTR) mongoincludes.c -includenest 4 -expect 1
+ $(SPLINTR) mongoincludes.c -includenest 5 -expect 0
.PHONY: mystrncat
mystrncat:
- $(LCLINTR) mystrncat.c +arraybounds +arrayboundsread -expect 4
+ $(SPLINTR) mystrncat.c +arraybounds +arrayboundsread -expect 4
.PHONY: noeffect
noeffect:
- ${LCLINT} -nof noeffect.c +allmacros +checks -expect 3
+ ${SPLINT} -nof noeffect.c +allmacros +checks -expect 3
.PHONY: null
null:
- $(LCLINTR) null1.c -expect 14
- $(LCLINTR) null1.c -null -expect 4
- $(LCLINTR) null2.c -expect 10
- $(LCLINTR) null3.c -expect 15
- $(LCLINTR) null3.c -warnunixlib +unixlib -expect 16
- $(LCLINTR) null4.c -expect 1
- $(LCLINTR) null5.c -expect 4
- $(LCLINTR) null6 -expect 4
- $(LCLINTR) +quiet null6.lcl -dump null6
- $(LCLINTR) null6.c -load null6 -expect 4
+ $(SPLINTR) null1.c -expect 14
+ $(SPLINTR) null1.c -null -expect 4
+ $(SPLINTR) null2.c -expect 10
+ $(SPLINTR) null3.c -expect 15
+ $(SPLINTR) null3.c -warnunixlib +unixlib -expect 16
+ $(SPLINTR) null4.c -expect 1
+ $(SPLINTR) null5.c -expect 4
+ $(SPLINTR) null6 -expect 4
+ $(SPLINTR) +quiet null6.lcl -dump null6
+ $(SPLINTR) null6.c -load null6 -expect 4
### Added for 3.0 (bugs reported by Kevin Broady)
.PHONY: nullret
nullret:
- $(LCLINTR) nullret.c -expect 2
- $(LCLINTR) -nullret nullret.c -expect 1
+ $(SPLINTR) nullret.c -expect 2
+ $(SPLINTR) -nullret nullret.c -expect 1
.PHONY: nullassign
nullassign:
- $(LCLINTR) nullassign.c -expect 2
- $(LCLINTR) -nullassign nullassign.c -expect 1
+ $(SPLINTR) nullassign.c -expect 2
+ $(SPLINTR) -nullassign nullassign.c -expect 1
#
.PHONY: observer
observer:
- $(LCLINTRN) observer +checks -exportlocal -exportheader -expect 9
- $(LCLINTRN) observer.c +checks -exportlocal -exportheader -expect 8
- $(LCLINTR) observer.c -expect 7
+ $(SPLINTRN) observer +checks -exportlocal -exportheader -expect 9
+ $(SPLINTRN) observer.c +checks -exportlocal -exportheader -expect 8
+ $(SPLINTR) observer.c -expect 7
.PHONY: oldstyle
oldstyle:
- $(LCLINTR) oldstyle -expect 3
+ $(SPLINTR) oldstyle -expect 3
.PHONY: outglob
outglob:
- $(LCLINTR) outglob -expect 10
+ $(SPLINTR) outglob -expect 10
.PHONY: outparam
outparam:
- $(LCLINTR) outparam -expect 12
+ $(SPLINTR) outparam -expect 12
### evans 2001-08-26: postnotnull new
.PHONY: postnotnull
postnotnull:
- ${LCLINTR} postnotnull.c -expect 1
+ ${SPLINTR} postnotnull.c -expect 1
#
# Four new +fcnuse errors for -strict (evans 2001-07-22)
#
.PHONY: preds
preds:
- $(LCLINTR) +hints preds.c -expect 6
- $(LCLINTRN) +hints preds.c -weak -expect 1
- $(LCLINTRN) +hints preds.c -strict -exportlocal -exportheader -expect 12
+ $(SPLINTR) +hints preds.c -expect 6
+ $(SPLINTRN) +hints preds.c -weak -expect 1
+ $(SPLINTRN) +hints preds.c -strict -exportlocal -exportheader -expect 12
.PHONY: prefixes
prefixes:
- $(LCLINTR) prefixes.c +partial
- $(LCLINTRN) prefixes.c +allmacros +checks -exportlocal +partial -exportheader -exportheadervar -expect 4
- $(LCLINTR) prefixes.c -typeprefix "T" -expect 2
- $(LCLINTR) prefixes.c -typeprefix "^" -expect 1
- $(LCLINTR) prefixes.c -typeprefix "^*" -expect 2
- $(LCLINTR) prefixes.c -typeprefix "^%*" -expect 2
- $(LCLINTR) prefixes.c -typeprefix "^~*" -expect 2
- $(LCLINTR) prefixes.c -typeprefix "^" +typeprefixexclude -expect 7
- $(LCLINTR) prefixes.c -filestaticprefix "^^" -expect 4
- $(LCLINTR) prefixes.c -filestaticprefix "^#" -expect 5
- $(LCLINTR) prefixes.c -filestaticprefix "^?&x" -expect 5
- $(LCLINTR) prefixes.c -globalprefix "G" -expect 1
- $(LCLINTR) prefixes.c -globalprefix "&G?_^" -expect 1
- $(LCLINTR) prefixes.c -externalprefix "G" -expect 5
- $(LCLINTR) prefixes.c -typeprefix "T" -externalprefix "G" -expect 4
- $(LCLINTR) prefixes.c -localprefix "?*" +localprefixexclude -expect 13
+ $(SPLINTR) prefixes.c +partial
+ $(SPLINTRN) prefixes.c +allmacros +checks -exportlocal +partial -exportheader -exportheadervar -expect 4
+ $(SPLINTR) prefixes.c -typeprefix "T" -expect 2
+ $(SPLINTR) prefixes.c -typeprefix "^" -expect 1
+ $(SPLINTR) prefixes.c -typeprefix "^*" -expect 2
+ $(SPLINTR) prefixes.c -typeprefix "^%*" -expect 2
+ $(SPLINTR) prefixes.c -typeprefix "^~*" -expect 2
+ $(SPLINTR) prefixes.c -typeprefix "^" +typeprefixexclude -expect 7
+ $(SPLINTR) prefixes.c -filestaticprefix "^^" -expect 4
+ $(SPLINTR) prefixes.c -filestaticprefix "^#" -expect 5
+ $(SPLINTR) prefixes.c -filestaticprefix "^?&x" -expect 5
+ $(SPLINTR) prefixes.c -globalprefix "G" -expect 1
+ $(SPLINTR) prefixes.c -globalprefix "&G?_^" -expect 1
+ $(SPLINTR) prefixes.c -externalprefix "G" -expect 5
+ $(SPLINTR) prefixes.c -typeprefix "T" -externalprefix "G" -expect 4
+ $(SPLINTR) prefixes.c -localprefix "?*" +localprefixexclude -expect 13
.PHONY: printflike
printflike:
- $(LCLINTR) printflike.c -expect 6
- $(LCLINTR) printflike.c -warnlintcomments -expect 5
+ $(SPLINTR) printflike.c -expect 6
+ $(SPLINTR) printflike.c -warnlintcomments -expect 5
.PHONY: rc
rc:
- $(LCLINTR) -DMYSTERY='"a flag\"wicked cool"' rc.c -expect 1
- $(LCLINTR) -DMYSTERY=12 rc.c -expect 1
- $(LCLINTR) -f rc1.lclintrc rc.c -expect 1
- $(LCLINTR) -UMYSTERY -f rc1.lclintrc rc.c -expect 1
- $(LCLINTR) -f rc3.lclintrc rc.c -expect 1
+ $(SPLINTR) -DMYSTERY='"a flag\"wicked cool"' rc.c -expect 1
+ $(SPLINTR) -DMYSTERY=12 rc.c -expect 1
+ $(SPLINTR) -f rc1.splintrc rc.c -expect 1
+ $(SPLINTR) -UMYSTERY -f rc1.splintrc rc.c -expect 1
+ $(SPLINTR) -f rc3.splintrc rc.c -expect 1
.PHONY: refcounts
refcounts:
- $(LCLINTR) refcounts.c -expect 7
+ $(SPLINTR) refcounts.c -expect 7
.PHONY: release
release:
- $(LCLINTR) release.c +memchecks -expect 1
+ $(SPLINTR) release.c +memchecks -expect 1
.PHONY: repexpose
repexpose:
- $(LCLINTR) +lh repexpose +memchecks -expect 12
- $(LCLINTR) repexpose +memchecks +retalias -expect 15
- $(LCLINTRN) repexpose +checks -exportlocal -expect 27
+ $(SPLINTR) +lh repexpose +memchecks -expect 12
+ $(SPLINTR) repexpose +memchecks +retalias -expect 15
+ $(SPLINTRN) repexpose +checks -exportlocal -expect 27
### returned added 2001-05-27
-### (Bug discovered checking lclint sources.)
+### (Bug discovered checking splint sources.)
.PHONY: returned
returned:
- ${LCLINTR} returned.c -expect 1
+ ${SPLINTR} returned.c -expect 1
.PHONY: sharing
sharing:
- $(LCLINTR) sharing1.c -expect 21
- $(LCLINTR) sharing3.c -expect 3
- $(LCLINTR) sharing4.c -expect 13
- $(LCLINTR) sharing4.c -paramimptemp -expect 12
- $(LCLINTR) sharing5.c -expect 6
+ $(SPLINTR) sharing1.c -expect 21
+ $(SPLINTR) sharing3.c -expect 3
+ $(SPLINTR) sharing4.c -expect 13
+ $(SPLINTR) sharing4.c -paramimptemp -expect 12
+ $(SPLINTR) sharing5.c -expect 6
.PHONY: slovaknames
slovaknames:
- $(LCLINTR) +hints slovaknames.c -expect 1
- $(LCLINTR) +hints slovaknames.c +accessslovak
- $(LCLINTR) +hints +slovak slovaknames.c -expect 3
- $(LCLINTR) +hints +slovak -slovakvars slovaknames.c -expect 2
- $(LCLINTR) +hints +slovak -accessslovak slovaknames.c -expect 7
+ $(SPLINTR) +hints slovaknames.c -expect 1
+ $(SPLINTR) +hints slovaknames.c +accessslovak
+ $(SPLINTR) +hints +slovak slovaknames.c -expect 3
+ $(SPLINTR) +hints +slovak -slovakvars slovaknames.c -expect 2
+ $(SPLINTR) +hints +slovak -accessslovak slovaknames.c -expect 7
.PHONY: specclauses
specclauses:
- $(LCLINTR) specclauses.c -expect 6
- $(LCLINTR) specclauses2.c -expect 8
- $(LCLINTR) specclauses3.c -expect 6
- $(LCLINTR) specclauses4.c -expect 3
- $(LCLINTR) specclauses5.c -expect 3
+ $(SPLINTR) specclauses.c -expect 6
+ $(SPLINTR) specclauses2.c -expect 8
+ $(SPLINTR) specclauses3.c -expect 6
+ $(SPLINTR) specclauses4.c -expect 3
+ $(SPLINTR) specclauses5.c -expect 3
.PHONY: special
special:
- $(LCLINTR) special -expect 20
- $(LCLINTR) special -relaxquals -expect 22
+ $(SPLINTR) special -expect 20
+ $(SPLINTR) special -relaxquals -expect 22
.PHONY: stack
stack:
- $(LCLINTR) stack.c -expect 5
- $(LCLINTR) stack.c -stackref
+ $(SPLINTR) stack.c -expect 5
+ $(SPLINTR) stack.c -stackref
.PHONY: staticarray
staticarray:
- $(LCLINTR) staticarray.c -expect 3
+ $(SPLINTR) staticarray.c -expect 3
.PHONY: strings
strings:
- $(LCLINTR) strings.c -expect 3
- $(LCLINTR) -readonlystrings -expect 1 strings.c
- $(LCLINTR) +modobserverstrict -maintype -expect 4 strings.c
+ $(SPLINTR) strings.c -expect 3
+ $(SPLINTR) -readonlystrings -expect 1 strings.c
+ $(SPLINTR) +modobserverstrict -maintype -expect 4 strings.c
.PHONY: structassign
structassign:
- $(LCLINTR) structassign.c -expect 4
+ $(SPLINTR) structassign.c -expect 4
.PHONY: typequals
typequals:
- $(LCLINTR) typequals.c tq.lcl -expect 5
- $(LCLINTR) typequals.c -expect 2
+ $(SPLINTR) typequals.c tq.lcl -expect 5
+ $(SPLINTR) typequals.c -expect 2
.PHONY: ud
ud:
- $(LCLINTR) ud.c -expect 9
- $(LCLINTR) ud2 -specundef -expect 3
+ $(SPLINTR) ud.c -expect 9
+ $(SPLINTR) ud2 -specundef -expect 3
.PHONY: ulstypes
ulstypes:
- $(LCLINTR) ulstypes.c -expect 8
- $(LCLINTR) ulstypes.c +ignorequals
- $(LCLINTRN) ulstypes.c +strict -exportheader -exportheadervar -expect 28
+ $(SPLINTR) ulstypes.c -expect 8
+ $(SPLINTR) ulstypes.c +ignorequals
+ $(SPLINTRN) ulstypes.c +strict -exportheader -exportheadervar -expect 28
# 3 more detected with version 2.5 (change in -numliteral setting)
.PHONY: union
union:
- $(LCLINTR) +memchecks union.c -expect 8
+ $(SPLINTR) +memchecks union.c -expect 8
.PHONY: unreachable
unreachable:
- $(LCLINTR) unreachable.c -expect 5
- $(LCLINTR) -unreachable unreachable.c -expect 2
- $(LCLINTR) switch.c -expect 4
+ $(SPLINTR) unreachable.c -expect 5
+ $(SPLINTR) -unreachable unreachable.c -expect 2
+ $(SPLINTR) switch.c -expect 4
.PHONY: unsignedcompare
unsignedcompare:
- ${LCLINTR} +posixlib unsignedcompare.c -expect 4
+ ${SPLINTR} +posixlib unsignedcompare.c -expect 4
###
.PHONY: unused
unused:
- $(LCLINTRN) unused.c +checks -exportlocal -expect 5
- $(LCLINTRN) unused.c +checks -exportlocal +topuse -expect 8
+ $(SPLINTRN) unused.c +checks -exportlocal -expect 5
+ $(SPLINTRN) unused.c +checks -exportlocal +topuse -expect 8
###
### 2001-06-10: Provided by Jim Zalenka
.PHONY: ullint
ullint:
- ${LCLINTRN} ullint.c -expect 5
- ${LCLINTRN} ullint.c +charint +charintliteral -expect 2
+ ${SPLINTRN} ullint.c -expect 5
+ ${SPLINTRN} ullint.c +charint +charintliteral -expect 2
.PHONY: void
void:
- ${LCLINTRN} void.c -expect 2
+ ${SPLINTRN} void.c -expect 2
###
### New since 2.5q:
.PHONY: linked
linked:
- ${LCLINTR} linked.c -expect 4
- ${LCLINTR} linked2.c -expect 3
- ${LCLINTR} linked3.c -expect 5
- ${LCLINTR} linked4.c -expect 6
- ${LCLINTR} linked5.c -expect 4
- ${LCLINTR} linked6.c -expect 4
+ ${SPLINTR} linked.c -expect 4
+ ${SPLINTR} linked2.c -expect 3
+ ${SPLINTR} linked3.c -expect 5
+ ${SPLINTR} linked4.c -expect 6
+ ${SPLINTR} linked5.c -expect 4
+ ${SPLINTR} linked6.c -expect 4
.PHONY: freearray
freearray:
- ${LCLINTR} freearray.c -expect 1
+ ${SPLINTR} freearray.c -expect 1
###
### Bugs fixed and new features since version 2.1b
.PHONY: sizeof
sizeof:
- $(LCLINTR) +arraybounds +arrayboundsread sizeof.c -expect 1
+ $(SPLINTR) +arraybounds +arrayboundsread sizeof.c -expect 1
.PHONY: buffertest
buffertest:
- $(LCLINTR) +arraybounds +arrayboundsread buffertest1.c -expect 5
+ $(SPLINTR) +arraybounds +arrayboundsread buffertest1.c -expect 5
SUBDIRTESTS += tests2.5
.PHONY: $(SUBDIRTESTS)
$(SUBDIRTESTS):
- cd $@; $(MAKE) LCLINT="$(LCLINTRNNEST)"
+ cd $@; $(MAKE) SPLINT="$(SPLINTRNNEST)"
#drl 11/29/2001 This is a very ugly hack to get make dist to work
EXTRA_DIST = ./abst_t.lcl ./abst_t.lcs \
./outglob.lcs \
./outparam.lcl \
./outparam.lcs \
- ./rc1.lclintrc \
- ./rc2.lclintrc \
- ./rc3.lclintrc \
- ./rc3.lclintrc.os2 \
+ ./rc1.splintrc \
+ ./rc2.splintrc \
+ ./rc3.splintrc \
+ ./rc3.splintrc.os2 \
./repexpose.lcl \
./repexpose.lcs \
./repexpose.lh \
./repexpose.lh.expect \
./special.lcl \
./special.lcs \
- ./db3/.lclintrc \
+ ./db3/.splintrc \
./db3/bool.lcl \
./db3/check.lcl \
./db3/dbase.lcl \
./tq.lcs \
./ud2.lcl \
./ud2.lcs \
- ./for/.lclintrc \
- ./globalbufferannotation/.lclintrc \
- ./maxset/.lclintrc \
- ./strchr/.lclintrc \
+ ./for/.splintrc \
+ ./globalbufferannotation/.splintrc \
+ ./maxset/.splintrc \
+ ./strchr/.splintrc \
./tests2.2/bool.lcl \
./tests2.2/bool.lcs \
./tests2.2/libraries.lcd \
DIFFFLAGS = -u
-LCLINT = $(top_builddir)/src/lclint$(EXEEXT)
+SPLINT = $(top_builddir)/src/splint$(EXEEXT)
### This is horrible! Can't we make top_builddir absolute?
-LCLINTNEST = ../$(top_builddir)/src/lclint$(EXEEXT)
+SPLINTNEST = ../$(top_builddir)/src/splint$(EXEEXT)
-LCLINTPNEST = @$(LCLINTNEST)
-LCLINTP = @$(LCLINT)
+SPLINTPNEST = @$(SPLINTNEST)
+SPLINTP = @$(SPLINT)
-# Make sure .lclintrc files are not used so test results do not
+# Make sure .splintrc files are not used so test results do not
# depend on local settings.
-LCLINTRN = $(LCLINTP) -nof -hints -booltype "bool"
-LCLINTR = $(LCLINTRN) -exportlocal +debugfcnconstraint
+SPLINTRN = $(SPLINTP) -nof -hints -booltype "bool"
+SPLINTR = $(SPLINTRN) -exportlocal +debugfcnconstraint
-LCLINTRNNEST = $(LCLINTPNEST) -nof -hints -booltype "bool"
-LCLINTRNEST = $(LCLINTRNNEST) -exportlocal +debugfcnconstraint
+SPLINTRNNEST = $(SPLINTPNEST) -nof -hints -booltype "bool"
+SPLINTRNEST = $(SPLINTRNNEST) -exportlocal +debugfcnconstraint
###
INTEGTESTS = db1 db2 db3
INTEGEXPECTS = $(addsuffix .expect, $(INTEGTESTS))
-LCLINTTESTS = $(UNITTESTS) $(INTEGTESTS)
+SPLINTTESTS = $(UNITTESTS) $(INTEGTESTS)
QUICKTESTS = db3
-CLEANOUTPUT = $(GREP) -v "LCLint 3." | $(GREP) -v "$(LCLINT)" | $(GREP) -v "^make.*\[[1-9]*\]:"
+CLEANOUTPUT = $(GREP) -v "Splint 3." | $(GREP) -v "$(SPLINT)" | $(GREP) -v "^make.*\[[1-9]*\]:"
### Rules for tests start here
./outglob.lcs \
./outparam.lcl \
./outparam.lcs \
- ./rc1.lclintrc \
- ./rc2.lclintrc \
- ./rc3.lclintrc \
- ./rc3.lclintrc.os2 \
+ ./rc1.splintrc \
+ ./rc2.splintrc \
+ ./rc3.splintrc \
+ ./rc3.splintrc.os2 \
./repexpose.lcl \
./repexpose.lcs \
./repexpose.lh \
./repexpose.lh.expect \
./special.lcl \
./special.lcs \
- ./db3/.lclintrc \
+ ./db3/.splintrc \
./db3/bool.lcl \
./db3/check.lcl \
./db3/dbase.lcl \
./tq.lcs \
./ud2.lcl \
./ud2.lcs \
- ./for/.lclintrc \
- ./globalbufferannotation/.lclintrc \
- ./maxset/.lclintrc \
- ./strchr/.lclintrc \
+ ./for/.splintrc \
+ ./globalbufferannotation/.splintrc \
+ ./maxset/.splintrc \
+ ./strchr/.splintrc \
./tests2.2/bool.lcl \
./tests2.2/bool.lcs \
./tests2.2/libraries.lcd \
.PHONY: version
version:
- -$(LCLINTP) -help version
+ -$(SPLINTP) -help version
.PHONY: help
help:
- -@$(LCLINTP)
- -@LARCH_PATH=/dev/null; $(LCLINT) empty.lcl
- -@$(LCLINTP) -help
- -@$(LCLINTP) -asdf
- -@$(LCLINTP) +boolint +boolint
- -@$(LCLINTP) -help flags alpha
- -@$(LCLINTP) -help flags all
+ -@$(SPLINTP)
+ -@LARCH_PATH=/dev/null; $(SPLINT) empty.lcl
+ -@$(SPLINTP) -help
+ -@$(SPLINTP) -asdf
+ -@$(SPLINTP) +boolint +boolint
+ -@$(SPLINTP) -help flags alpha
+ -@$(SPLINTP) -help flags all
.PHONY: clean-local
clean-local:
-cd db2; $(MAKE) clean
-cd db3; $(MAKE) clean
-$(LCLINTTESTS): $(LCLINT)
+$(SPLINTTESTS): $(SPLINT)
-$(LCLINT):
+$(SPLINT):
cd $(top_builddir)/src; $(MAKE)
.c.expect:
@echo "Testing $(PACKAGE) $(VERSION)..."
@echo
@echo "Version Info:"
- @$(LCLINTP) -help version
- @$(LCLINTP) -help vars
+ @$(SPLINTP) -help version
+ @$(SPLINTP) -help vars
@echo ""
@echo "Unit tests:"
@echo ""
.PHONY: abstptr
abstptr:
- $(LCLINTR) abstptr -expect 9
- $(LCLINTR) abstptr +voidabstract -expect 6
+ $(SPLINTR) abstptr -expect 9
+ $(SPLINTR) abstptr +voidabstract -expect 6
.PHONY: abstract
abstract:
- $(LCLINTR) abst_t.lcl commentcmd.c -expect 15
+ $(SPLINTR) abst_t.lcl commentcmd.c -expect 15
.PHONY: alias
alias:
- $(LCLINTR) +lh mut
- $(LCLINTR) mut alias +globalias -expect 19
- $(LCLINTR) mut alias2 +globalias -expect 17
- $(LCLINTR) +lh alias3 -expect 14
- $(LCLINTR) +lh alias4 +boolint
- $(LCLINTR) alias4 -pred +retalias -expect 6
- $(LCLINTR) +lh alias5 +memchecks -null -specundef -expect 5
+ $(SPLINTR) +lh mut
+ $(SPLINTR) mut alias +globalias -expect 19
+ $(SPLINTR) mut alias2 +globalias -expect 17
+ $(SPLINTR) +lh alias3 -expect 14
+ $(SPLINTR) +lh alias4 +boolint
+ $(SPLINTR) alias4 -pred +retalias -expect 6
+ $(SPLINTR) +lh alias5 +memchecks -null -specundef -expect 5
.PHONY: alttypes
alttypes:
- $(LCLINTR) alttypes.c -expect 2
+ $(SPLINTR) alttypes.c -expect 2
###
### evans 2001-06-07 - updated nameCheck.c to reflect C9X.
.PHONY: ansireserved
ansireserved:
- $(LCLINTR) ansireserved.c +ansireserved -nolib -expect 9
- $(LCLINTR) ansireserved.c +ansireserved +ansireservedlocal -nolib -expect 11
- $(LCLINTRN) ansireserved.c +checks -exportlocal -exportheadervar -exportheader -expect 12
- $(LCLINTR) ansireserved2.c +ansireserved -expect 1
+ $(SPLINTR) ansireserved.c +ansireserved -nolib -expect 9
+ $(SPLINTR) ansireserved.c +ansireserved +ansireservedlocal -nolib -expect 11
+ $(SPLINTRN) ansireserved.c +checks -exportlocal -exportheadervar -exportheader -expect 12
+ $(SPLINTR) ansireserved2.c +ansireserved -expect 1
.PHONY: argorder
argorder:
- $(LCLINTR) argorder.c -expect 4
- $(LCLINTR) argorder2 -expect 5
- $(LCLINTR) argorder3.c -expect 8
- $(LCLINTR) argorder4 -expect 9
- $(LCLINTR) argorder4 -evalorder -expect 1
- $(LCLINTR) argorder5.c +evalorderuncon -expect 3
+ $(SPLINTR) argorder.c -expect 4
+ $(SPLINTR) argorder2 -expect 5
+ $(SPLINTR) argorder3.c -expect 8
+ $(SPLINTR) argorder4 -expect 9
+ $(SPLINTR) argorder4 -evalorder -expect 1
+ $(SPLINTR) argorder5.c +evalorderuncon -expect 3
.PHONY: args
args:
- $(LCLINTR) args -noeffect -expect 12
+ $(SPLINTR) args -noeffect -expect 12
.PHONY: blocks
blocks:
- $(LCLINTR) blocks.c -expect 4
- $(LCLINTR) blocks.c +ifblock +elseifcomplete -expect 7
- $(LCLINTR) blocks.c -ifempty +whileempty +whileblock -expect 3
- $(LCLINTR) blocks.c -ifempty +forempty +forblock -expect 3
- $(LCLINTR) blocks.c +allempty -expect 6
- $(LCLINTRN) blocks.c +strict -exportlocal +partial -exportheader -expect 11
+ $(SPLINTR) blocks.c -expect 4
+ $(SPLINTR) blocks.c +ifblock +elseifcomplete -expect 7
+ $(SPLINTR) blocks.c -ifempty +whileempty +whileblock -expect 3
+ $(SPLINTR) blocks.c -ifempty +forempty +forblock -expect 3
+ $(SPLINTR) blocks.c +allempty -expect 6
+ $(SPLINTRN) blocks.c +strict -exportlocal +partial -exportheader -expect 11
.PHONY: break
break:
- $(LCLINTR) break.c -expect 4
- $(LCLINTR) break.c +deepbreak -expect 6
- $(LCLINTR) break.c +deepbreak -looploopbreak -expect 5
+ $(SPLINTR) break.c -expect 4
+ $(SPLINTR) break.c +deepbreak -expect 6
+ $(SPLINTR) break.c +deepbreak -looploopbreak -expect 5
.PHONY: cases
cases:
- $(LCLINTR) cases.c -expect 5
- $(LCLINTR) cases2.c -expect 2
- $(LCLINTRN) cases2.c +checks -exportlocal -exportheader -expect 3
- $(LCLINTRN) cases2.c +checks -exportlocal -exportheader -branchstate -expect 3
+ $(SPLINTR) cases.c -expect 5
+ $(SPLINTR) cases2.c -expect 2
+ $(SPLINTRN) cases2.c +checks -exportlocal -exportheader -expect 3
+ $(SPLINTRN) cases2.c +checks -exportlocal -exportheader -branchstate -expect 3
.PHONY: cast
cast:
- $(LCLINTR) cast -accessmodule -expect 20
- $(LCLINTRN) cast2.c +checks -exportlocal -exportheader -expect 3
+ $(SPLINTR) cast -accessmodule -expect 20
+ $(SPLINTRN) cast2.c +checks -exportlocal -exportheader -expect 3
### Two addition errors detected with 2.5 with -numliteral.
.PHONY: charlit
charlit:
- $(LCLINTR) +hints charlit.c -expect 4
- $(LCLINTR) +hints -numliteral charlit.c -expect 6
- $(LCLINTR) +hints charlit.c +charintliteral +ignoresigns
+ $(SPLINTR) +hints charlit.c -expect 4
+ $(SPLINTR) +hints -numliteral charlit.c -expect 6
+ $(SPLINTR) +hints charlit.c +charintliteral +ignoresigns
.PHONY: clauses
clauses:
- $(LCLINTR) clauses.c +memchecks -expect 4
- $(LCLINTR) clauses2.c +memchecks
- $(LCLINTR) clauses3.c +memchecks -expect 2
- $(LCLINTR) clauses3.c +memchecks +unixlib -expect 3
+ $(SPLINTR) clauses.c +memchecks -expect 4
+ $(SPLINTR) clauses2.c +memchecks
+ $(SPLINTR) clauses3.c +memchecks -expect 2
+ $(SPLINTR) clauses3.c +memchecks +unixlib -expect 3
.PHONY: commentchar
commentchar:
- $(LCLINTR) commentchar.c -expect 4
- $(LCLINTR) -commentchar '#' commentchar.c -expect 4
+ $(SPLINTR) commentchar.c -expect 4
+ $(SPLINTR) -commentchar '#' commentchar.c -expect 4
.PHONY: controldepth
controldepth:
- $(LCLINTR) +hints -controlnestdepth 2 controldepth.c -expect 2
- $(LCLINTR) +hints -controlnestdepth 1 controldepth.c -expect 2
+ $(SPLINTR) +hints -controlnestdepth 2 controldepth.c -expect 2
+ $(SPLINTR) +hints -controlnestdepth 1 controldepth.c -expect 2
.PHONY: compdestroy
compdestroy:
- $(LCLINTRN) compdestroy.c +checks -exportlocal -exportheader -expect 1
- $(LCLINTRN) compdestroy.c +checks -exportlocal -exportheader +strictdestroy -expect 2
- $(LCLINTRN) compdestroy.c +checks -exportlocal -exportheader +strictdestroy +strictusereleased -expect 3
- $(LCLINTRN) compdestroy.c +strict +partial -exportheader -expect 3
+ $(SPLINTRN) compdestroy.c +checks -exportlocal -exportheader -expect 1
+ $(SPLINTRN) compdestroy.c +checks -exportlocal -exportheader +strictdestroy -expect 2
+ $(SPLINTRN) compdestroy.c +checks -exportlocal -exportheader +strictdestroy +strictusereleased -expect 3
+ $(SPLINTRN) compdestroy.c +strict +partial -exportheader -expect 3
.PHONY: constannot
constannot:
- ${LCLINTRN} constannot.c +arraybounds -exportlocal -expect 2
+ ${SPLINTRN} constannot.c +arraybounds -exportlocal -expect 2
.PHONY: csyntax
csyntax:
- $(LCLINTR) +quiet -incondefs csyntax.c -expect 1
- $(LCLINTR) +quiet csyntax2.c -expect 2
- $(LCLINTR) +quiet csyntax3.c -expect 1
- $(LCLINTR) +quiet -incondefs csyntax4.c
- $(LCLINTR) +quiet csyntax5.c
- $(LCLINTR) +quiet csyntax6.c
- $(LCLINTR) +quiet csyntax7.c
- $(LCLINTR) +quiet csyntax8.c
- $(LCLINTR) +quiet csyntax9.c
- $(LCLINTR) +quiet csyntax10.c
- $(LCLINTR) +quiet csyntax11.c
- $(LCLINTR) +quiet csyntax12.c
- $(LCLINTR) +quiet csyntax13.c -expect 1
- $(LCLINTR) +quiet csyntax14.c
- $(LCLINTR) +quiet csyntax15.c
- $(LCLINTR) +quiet csyntax16.c -expect 2
- $(LCLINTR) +quiet csyntax17.c -expect 3
+ $(SPLINTR) +quiet -incondefs csyntax.c -expect 1
+ $(SPLINTR) +quiet csyntax2.c -expect 2
+ $(SPLINTR) +quiet csyntax3.c -expect 1
+ $(SPLINTR) +quiet -incondefs csyntax4.c
+ $(SPLINTR) +quiet csyntax5.c
+ $(SPLINTR) +quiet csyntax6.c
+ $(SPLINTR) +quiet csyntax7.c
+ $(SPLINTR) +quiet csyntax8.c
+ $(SPLINTR) +quiet csyntax9.c
+ $(SPLINTR) +quiet csyntax10.c
+ $(SPLINTR) +quiet csyntax11.c
+ $(SPLINTR) +quiet csyntax12.c
+ $(SPLINTR) +quiet csyntax13.c -expect 1
+ $(SPLINTR) +quiet csyntax14.c
+ $(SPLINTR) +quiet csyntax15.c
+ $(SPLINTR) +quiet csyntax16.c -expect 2
+ $(SPLINTR) +quiet csyntax17.c -expect 3
.PHONY: czechnames
czechnames:
- $(LCLINTR) czechnames.c
- $(LCLINTR) +hints +czech czechnames.c -expect 2
- $(LCLINTR) +hints +czech -czechvars czechnames.c -expect 1
- $(LCLINTR) +hints +czech -accessczech czechnames.c -expect 6
+ $(SPLINTR) czechnames.c
+ $(SPLINTR) +hints +czech czechnames.c -expect 2
+ $(SPLINTR) +hints +czech -czechvars czechnames.c -expect 1
+ $(SPLINTR) +hints +czech -accessczech czechnames.c -expect 6
.PHONY: czechoslovaknames
czechoslovaknames:
- $(LCLINTR) +hints +czechoslovak czechnames.c -expect 1
- $(LCLINTR) +hints +czechoslovak slovaknames.c -expect 1
- $(LCLINTR) +hints +czechoslovak +slovakvars slovaknames.c -expect 2
+ $(SPLINTR) +hints +czechoslovak czechnames.c -expect 1
+ $(SPLINTR) +hints +czechoslovak slovaknames.c -expect 1
+ $(SPLINTR) +hints +czechoslovak +slovakvars slovaknames.c -expect 2
###
### deadparam added 2001-05-27
.PHONY: deadparam
deadparam:
- ${LCLINTR} deadparam.c -expect 3
+ ${SPLINTR} deadparam.c -expect 3
#
# Was expect 3 before 2.4. Earlier versions did not handle implicit
.PHONY: decl
decl:
- $(LCLINTR) decl.c -expect 2
- $(LCLINTRN) decl.c +strict -exportlocal -expect 5
- $(LCLINTR) decl2 -expect 4
+ $(SPLINTR) decl.c -expect 2
+ $(SPLINTRN) decl.c +strict -exportlocal -expect 5
+ $(SPLINTR) decl2 -expect 4
.PHONY: enum
enum:
- $(LCLINTR) enum -expect 16
- $(LCLINTR) enum -misscase -expect 14
+ $(SPLINTR) enum -expect 16
+ $(SPLINTR) enum -misscase -expect 14
.PHONY: exports
exports:
- $(LCLINTR) exports.c +exporttype +exportvar +exportfcn +topuse +typeuse -expect 6
- $(LCLINTR) exports.c +exportany -expect 3
- $(LCLINTR) exports.c
+ $(SPLINTR) exports.c +exporttype +exportvar +exportfcn +topuse +typeuse -expect 6
+ $(SPLINTR) exports.c +exportany -expect 3
+ $(SPLINTR) exports.c
.PHONY: external
external:
- $(LCLINTR) external.c +partial
- $(LCLINTR) external.c +partial +distinctexternalnames -expect 2
- $(LCLINTR) external.c -nolib +partial -externalnamelength 3 -expect 3
- $(LCLINTR) external.c -nolib +partial -externalnamelength 3 +externalnamecaseinsensitive -expect 3
- $(LCLINTR) external.c +partial -externalnamelength 3 -expect 4
+ $(SPLINTR) external.c +partial
+ $(SPLINTR) external.c +partial +distinctexternalnames -expect 2
+ $(SPLINTR) external.c -nolib +partial -externalnamelength 3 -expect 3
+ $(SPLINTR) external.c -nolib +partial -externalnamelength 3 +externalnamecaseinsensitive -expect 3
+ $(SPLINTR) external.c +partial -externalnamelength 3 -expect 4
.PHONY: fields
fields:
- $(LCLINTR) fields.c +memchecks -expect 6
- $(LCLINTR) fields2.c +memchecks -expect 5
- $(LCLINTR) fields3.c +memchecks
+ $(SPLINTR) fields.c +memchecks -expect 6
+ $(SPLINTR) fields2.c +memchecks -expect 5
+ $(SPLINTR) fields3.c +memchecks
.PHONY: flags
flags:
- $(LCLINTR) flags.c -expect 8
- $(LCLINTR) +nocomments flags.c -expect 2
+ $(SPLINTR) flags.c -expect 8
+ $(SPLINTR) +nocomments flags.c -expect 2
### Added 2001-06-02
.PHONY: forbody
forbody:
- ${LCLINTR} forbody.c -expect 2
+ ${SPLINTR} forbody.c -expect 2
### Added 2001-06-03
.PHONY: format
format:
- ${LCLINTR} format.c -expect 3
- ${LCLINTR} format.c -formatconst
+ ${SPLINTR} format.c -expect 3
+ ${SPLINTR} format.c -formatconst
# two new errors (invalid lhs)
.PHONY: funcpointer
funcpointer:
- $(LCLINTR) +memchecks +noparams funcpointer.c -expect 18
+ $(SPLINTR) +memchecks +noparams funcpointer.c -expect 18
.PHONY: glob
glob:
- $(LCLINTR) glob -expect 4
- $(LCLINTR) glob -globuse -expect 3
- $(LCLINTR) glob +globunspec -expect 6
+ $(SPLINTR) glob -expect 4
+ $(SPLINTR) glob -globuse -expect 3
+ $(SPLINTR) glob +globunspec -expect 6
.PHONY: globals
globals:
- $(LCLINTR) -modifies globals.c -expect 5
- $(LCLINTR) -modifies globals.c +allglobals -expect 6
- $(LCLINTR) -modifies globals.c +impcheckedglobals -expect 6
- $(LCLINTR) -modifies globals.c -globals -checkstrictglobals -expect 2
- $(LCLINTR) -modifies globals.c +globunspec -expect 6
- $(LCLINTR) -modifies globals.c +globunspec +allglobals -expect 8
+ $(SPLINTR) -modifies globals.c -expect 5
+ $(SPLINTR) -modifies globals.c +allglobals -expect 6
+ $(SPLINTR) -modifies globals.c +impcheckedglobals -expect 6
+ $(SPLINTR) -modifies globals.c -globals -checkstrictglobals -expect 2
+ $(SPLINTR) -modifies globals.c +globunspec -expect 6
+ $(SPLINTR) -modifies globals.c +globunspec +allglobals -expect 8
# Was -accessfile
.PHONY: impabstract
impabstract:
- $(LCLINTR) -accessmodule impabstract.c
- $(LCLINTR) -accessmodule +hints +impabstract impabstract.c -expect 2
- $(LCLINTR) -accessmodule +hints +impabstract impabstract -expect 4
+ $(SPLINTR) -accessmodule impabstract.c
+ $(SPLINTR) -accessmodule +hints +impabstract impabstract.c -expect 2
+ $(SPLINTR) -accessmodule +hints +impabstract impabstract -expect 4
### evans 2001-10-14: Expected errors updated
.PHONY: init
init:
- $(LCLINTR) init.c -expect 14
- $(LCLINTRN) init.c +checks -exportlocal -exportheadervar -expect 17
+ $(SPLINTR) init.c -expect 14
+ $(SPLINTRN) init.c +checks -exportlocal -exportheadervar -expect 17
.PHONY: inparam
inparam:
- $(LCLINTR) inparam.c -expect 2
- $(LCLINTR) +impouts inparam.c -expect 1
+ $(SPLINTR) inparam.c -expect 2
+ $(SPLINTR) +impouts inparam.c -expect 1
.PHONY: internal
internal:
- $(LCLINTR) internal.c -expect 1
- $(LCLINTR) internal.c +distinctinternalnames -expect 2
- $(LCLINTR) internal.c -internalnamelen 28 -expect 3
- $(LCLINTR) internal.c +internalnamecaseinsensitive -expect 3
- $(LCLINTR) internal.c +internalnamecaseinsensitive +internalnamelookalike -expect 11
+ $(SPLINTR) internal.c -expect 1
+ $(SPLINTR) internal.c +distinctinternalnames -expect 2
+ $(SPLINTR) internal.c -internalnamelen 28 -expect 3
+ $(SPLINTR) internal.c +internalnamecaseinsensitive -expect 3
+ $(SPLINTR) internal.c +internalnamecaseinsensitive +internalnamelookalike -expect 11
###
### iter
.PHONY: iter
iter:
- $(LCLINTR) iter -expect 14 -lclexpect 1
- $(LCLINTR) iter2.c -expect 12
+ $(SPLINTR) iter -expect 14 -lclexpect 1
+ $(SPLINTR) iter2.c -expect 12
.PHONY: keep
keep:
- $(LCLINTR) keep.c +memchecks -expect 6
+ $(SPLINTR) keep.c +memchecks -expect 6
### libs
### 2001-05-22: 2 new errors found (fixed spec of signal)
.PHONY: libs
libs:
- $(LCLINTR) libs.c +longunsignedunsignedintegral -expect 18
- $(LCLINTR) libs.c -expect 22
- $(LCLINTR) libs.c +globunspec +modunspec -expect 25
- $(LCLINTR) libs.c +strictlib +globunspec +modunspec -expect 42
+ $(SPLINTR) libs.c +longunsignedunsignedintegral -expect 18
+ $(SPLINTR) libs.c -expect 22
+ $(SPLINTR) libs.c +globunspec +modunspec -expect 25
+ $(SPLINTR) libs.c +strictlib +globunspec +modunspec -expect 42
.PHONY: lintcomments
lintcomments:
- $(LCLINTR) lintcomments.c -expect 4
- $(LCLINTR) lintcomments.c -warnlintcomments -expect 1
- $(LCLINTR) lintcomments.c -lintcomments -expect 4
+ $(SPLINTR) lintcomments.c -expect 4
+ $(SPLINTR) lintcomments.c -warnlintcomments -expect 1
+ $(SPLINTR) lintcomments.c -lintcomments -expect 4
.PHONY: list
list:
- $(LCLINTR) list.c -expect 3
+ $(SPLINTR) list.c -expect 3
.PHONY: macros
macros:
- $(LCLINTR) macros -expect 17
- $(LCLINTR) macros.c +allmacros -expect 34
- $(LCLINTR) macros.c +fcnmacros -expect 31
+ $(SPLINTR) macros -expect 17
+ $(SPLINTR) macros.c +allmacros -expect 34
+ $(SPLINTR) macros.c +fcnmacros -expect 31
.PHONY: macrosef
macrosef:
- $(LCLINTR) macrosef -expect 4
- $(LCLINTR) macrosef.c +allmacros -expect 3
- $(LCLINTR) macrosef.c +allmacros +sefuncon -expect 4
+ $(SPLINTR) macrosef -expect 4
+ $(SPLINTR) macrosef.c +allmacros -expect 3
+ $(SPLINTR) macrosef.c +allmacros +sefuncon -expect 4
.PHONY: merge
merge:
- $(LCLINTRN) merge.c +checks -exportlocal -exportheadervar -exportheader -expect 3
+ $(SPLINTRN) merge.c +checks -exportlocal -exportheadervar -exportheader -expect 3
.PHONY: modifies
modifies:
- $(LCLINTR) modifies.c modclient.c +impcheckedstatics +mustmod -expect 7
+ $(SPLINTR) modifies.c modclient.c +impcheckedstatics +mustmod -expect 7
.PHONY: modtest
modtest:
- $(LCLINTR) modtest -expect 10
- $(LCLINTR) modtest +modunspec -expect 13
- $(LCLINTR) modtest +mustmod -expect 14
+ $(SPLINTR) modtest -expect 10
+ $(SPLINTR) modtest +modunspec -expect 13
+ $(SPLINTR) modtest +mustmod -expect 14
.PHONY: moduncon
moduncon:
- $(LCLINTR) moduncon.c +moduncon -memchecks -expect 4
- $(LCLINTRN) moduncon.c +strict -exportlocal -expect 22
+ $(SPLINTR) moduncon.c +moduncon -memchecks -expect 4
+ $(SPLINTRN) moduncon.c +strict -exportlocal -expect 22
.PHONY: mongoincludes
mongoincludes:
- $(LCLINTR) mongoincludes.c -includenest 1 -expect 19
- $(LCLINTR) mongoincludes.c -includenest 2 -expect 10
- $(LCLINTR) mongoincludes.c -includenest 3 -expect 4
- $(LCLINTR) mongoincludes.c -includenest 4 -expect 1
- $(LCLINTR) mongoincludes.c -includenest 5 -expect 0
+ $(SPLINTR) mongoincludes.c -includenest 1 -expect 19
+ $(SPLINTR) mongoincludes.c -includenest 2 -expect 10
+ $(SPLINTR) mongoincludes.c -includenest 3 -expect 4
+ $(SPLINTR) mongoincludes.c -includenest 4 -expect 1
+ $(SPLINTR) mongoincludes.c -includenest 5 -expect 0
.PHONY: mystrncat
mystrncat:
- $(LCLINTR) mystrncat.c +arraybounds +arrayboundsread -expect 4
+ $(SPLINTR) mystrncat.c +arraybounds +arrayboundsread -expect 4
.PHONY: noeffect
noeffect:
- ${LCLINT} -nof noeffect.c +allmacros +checks -expect 3
+ ${SPLINT} -nof noeffect.c +allmacros +checks -expect 3
.PHONY: null
null:
- $(LCLINTR) null1.c -expect 14
- $(LCLINTR) null1.c -null -expect 4
- $(LCLINTR) null2.c -expect 10
- $(LCLINTR) null3.c -expect 15
- $(LCLINTR) null3.c -warnunixlib +unixlib -expect 16
- $(LCLINTR) null4.c -expect 1
- $(LCLINTR) null5.c -expect 4
- $(LCLINTR) null6 -expect 4
- $(LCLINTR) +quiet null6.lcl -dump null6
- $(LCLINTR) null6.c -load null6 -expect 4
+ $(SPLINTR) null1.c -expect 14
+ $(SPLINTR) null1.c -null -expect 4
+ $(SPLINTR) null2.c -expect 10
+ $(SPLINTR) null3.c -expect 15
+ $(SPLINTR) null3.c -warnunixlib +unixlib -expect 16
+ $(SPLINTR) null4.c -expect 1
+ $(SPLINTR) null5.c -expect 4
+ $(SPLINTR) null6 -expect 4
+ $(SPLINTR) +quiet null6.lcl -dump null6
+ $(SPLINTR) null6.c -load null6 -expect 4
### Added for 3.0 (bugs reported by Kevin Broady)
.PHONY: nullret
nullret:
- $(LCLINTR) nullret.c -expect 2
- $(LCLINTR) -nullret nullret.c -expect 1
+ $(SPLINTR) nullret.c -expect 2
+ $(SPLINTR) -nullret nullret.c -expect 1
.PHONY: nullassign
nullassign:
- $(LCLINTR) nullassign.c -expect 2
- $(LCLINTR) -nullassign nullassign.c -expect 1
+ $(SPLINTR) nullassign.c -expect 2
+ $(SPLINTR) -nullassign nullassign.c -expect 1
#
# Before 2.4, expected one more because error was reported both as
.PHONY: observer
observer:
- $(LCLINTRN) observer +checks -exportlocal -exportheader -expect 9
- $(LCLINTRN) observer.c +checks -exportlocal -exportheader -expect 8
- $(LCLINTR) observer.c -expect 7
+ $(SPLINTRN) observer +checks -exportlocal -exportheader -expect 9
+ $(SPLINTRN) observer.c +checks -exportlocal -exportheader -expect 8
+ $(SPLINTR) observer.c -expect 7
.PHONY: oldstyle
oldstyle:
- $(LCLINTR) oldstyle -expect 3
+ $(SPLINTR) oldstyle -expect 3
.PHONY: outglob
outglob:
- $(LCLINTR) outglob -expect 10
+ $(SPLINTR) outglob -expect 10
.PHONY: outparam
outparam:
- $(LCLINTR) outparam -expect 12
+ $(SPLINTR) outparam -expect 12
### evans 2001-08-26: postnotnull new
.PHONY: postnotnull
postnotnull:
- ${LCLINTR} postnotnull.c -expect 1
+ ${SPLINTR} postnotnull.c -expect 1
#
# Four new +fcnuse errors for -strict (evans 2001-07-22)
#
.PHONY: preds
preds:
- $(LCLINTR) +hints preds.c -expect 6
- $(LCLINTRN) +hints preds.c -weak -expect 1
- $(LCLINTRN) +hints preds.c -strict -exportlocal -exportheader -expect 12
+ $(SPLINTR) +hints preds.c -expect 6
+ $(SPLINTRN) +hints preds.c -weak -expect 1
+ $(SPLINTRN) +hints preds.c -strict -exportlocal -exportheader -expect 12
.PHONY: prefixes
prefixes:
- $(LCLINTR) prefixes.c +partial
- $(LCLINTRN) prefixes.c +allmacros +checks -exportlocal +partial -exportheader -exportheadervar -expect 4
- $(LCLINTR) prefixes.c -typeprefix "T" -expect 2
- $(LCLINTR) prefixes.c -typeprefix "^" -expect 1
- $(LCLINTR) prefixes.c -typeprefix "^*" -expect 2
- $(LCLINTR) prefixes.c -typeprefix "^%*" -expect 2
- $(LCLINTR) prefixes.c -typeprefix "^~*" -expect 2
- $(LCLINTR) prefixes.c -typeprefix "^" +typeprefixexclude -expect 7
- $(LCLINTR) prefixes.c -filestaticprefix "^^" -expect 4
- $(LCLINTR) prefixes.c -filestaticprefix "^#" -expect 5
- $(LCLINTR) prefixes.c -filestaticprefix "^?&x" -expect 5
- $(LCLINTR) prefixes.c -globalprefix "G" -expect 1
- $(LCLINTR) prefixes.c -globalprefix "&G?_^" -expect 1
- $(LCLINTR) prefixes.c -externalprefix "G" -expect 5
- $(LCLINTR) prefixes.c -typeprefix "T" -externalprefix "G" -expect 4
- $(LCLINTR) prefixes.c -localprefix "?*" +localprefixexclude -expect 13
+ $(SPLINTR) prefixes.c +partial
+ $(SPLINTRN) prefixes.c +allmacros +checks -exportlocal +partial -exportheader -exportheadervar -expect 4
+ $(SPLINTR) prefixes.c -typeprefix "T" -expect 2
+ $(SPLINTR) prefixes.c -typeprefix "^" -expect 1
+ $(SPLINTR) prefixes.c -typeprefix "^*" -expect 2
+ $(SPLINTR) prefixes.c -typeprefix "^%*" -expect 2
+ $(SPLINTR) prefixes.c -typeprefix "^~*" -expect 2
+ $(SPLINTR) prefixes.c -typeprefix "^" +typeprefixexclude -expect 7
+ $(SPLINTR) prefixes.c -filestaticprefix "^^" -expect 4
+ $(SPLINTR) prefixes.c -filestaticprefix "^#" -expect 5
+ $(SPLINTR) prefixes.c -filestaticprefix "^?&x" -expect 5
+ $(SPLINTR) prefixes.c -globalprefix "G" -expect 1
+ $(SPLINTR) prefixes.c -globalprefix "&G?_^" -expect 1
+ $(SPLINTR) prefixes.c -externalprefix "G" -expect 5
+ $(SPLINTR) prefixes.c -typeprefix "T" -externalprefix "G" -expect 4
+ $(SPLINTR) prefixes.c -localprefix "?*" +localprefixexclude -expect 13
.PHONY: printflike
printflike:
- $(LCLINTR) printflike.c -expect 6
- $(LCLINTR) printflike.c -warnlintcomments -expect 5
+ $(SPLINTR) printflike.c -expect 6
+ $(SPLINTR) printflike.c -warnlintcomments -expect 5
.PHONY: rc
rc:
- $(LCLINTR) -DMYSTERY='"a flag\"wicked cool"' rc.c -expect 1
- $(LCLINTR) -DMYSTERY=12 rc.c -expect 1
- $(LCLINTR) -f rc1.lclintrc rc.c -expect 1
- $(LCLINTR) -UMYSTERY -f rc1.lclintrc rc.c -expect 1
- $(LCLINTR) -f rc3.lclintrc rc.c -expect 1
+ $(SPLINTR) -DMYSTERY='"a flag\"wicked cool"' rc.c -expect 1
+ $(SPLINTR) -DMYSTERY=12 rc.c -expect 1
+ $(SPLINTR) -f rc1.splintrc rc.c -expect 1
+ $(SPLINTR) -UMYSTERY -f rc1.splintrc rc.c -expect 1
+ $(SPLINTR) -f rc3.splintrc rc.c -expect 1
.PHONY: refcounts
refcounts:
- $(LCLINTR) refcounts.c -expect 7
+ $(SPLINTR) refcounts.c -expect 7
.PHONY: release
release:
- $(LCLINTR) release.c +memchecks -expect 1
+ $(SPLINTR) release.c +memchecks -expect 1
.PHONY: repexpose
repexpose:
- $(LCLINTR) +lh repexpose +memchecks -expect 12
- $(LCLINTR) repexpose +memchecks +retalias -expect 15
- $(LCLINTRN) repexpose +checks -exportlocal -expect 27
+ $(SPLINTR) +lh repexpose +memchecks -expect 12
+ $(SPLINTR) repexpose +memchecks +retalias -expect 15
+ $(SPLINTRN) repexpose +checks -exportlocal -expect 27
### returned added 2001-05-27
-### (Bug discovered checking lclint sources.)
+### (Bug discovered checking splint sources.)
.PHONY: returned
returned:
- ${LCLINTR} returned.c -expect 1
+ ${SPLINTR} returned.c -expect 1
.PHONY: sharing
sharing:
- $(LCLINTR) sharing1.c -expect 21
- $(LCLINTR) sharing3.c -expect 3
- $(LCLINTR) sharing4.c -expect 13
- $(LCLINTR) sharing4.c -paramimptemp -expect 12
- $(LCLINTR) sharing5.c -expect 6
+ $(SPLINTR) sharing1.c -expect 21
+ $(SPLINTR) sharing3.c -expect 3
+ $(SPLINTR) sharing4.c -expect 13
+ $(SPLINTR) sharing4.c -paramimptemp -expect 12
+ $(SPLINTR) sharing5.c -expect 6
.PHONY: slovaknames
slovaknames:
- $(LCLINTR) +hints slovaknames.c -expect 1
- $(LCLINTR) +hints slovaknames.c +accessslovak
- $(LCLINTR) +hints +slovak slovaknames.c -expect 3
- $(LCLINTR) +hints +slovak -slovakvars slovaknames.c -expect 2
- $(LCLINTR) +hints +slovak -accessslovak slovaknames.c -expect 7
+ $(SPLINTR) +hints slovaknames.c -expect 1
+ $(SPLINTR) +hints slovaknames.c +accessslovak
+ $(SPLINTR) +hints +slovak slovaknames.c -expect 3
+ $(SPLINTR) +hints +slovak -slovakvars slovaknames.c -expect 2
+ $(SPLINTR) +hints +slovak -accessslovak slovaknames.c -expect 7
.PHONY: specclauses
specclauses:
- $(LCLINTR) specclauses.c -expect 6
- $(LCLINTR) specclauses2.c -expect 8
- $(LCLINTR) specclauses3.c -expect 6
- $(LCLINTR) specclauses4.c -expect 3
- $(LCLINTR) specclauses5.c -expect 3
+ $(SPLINTR) specclauses.c -expect 6
+ $(SPLINTR) specclauses2.c -expect 8
+ $(SPLINTR) specclauses3.c -expect 6
+ $(SPLINTR) specclauses4.c -expect 3
+ $(SPLINTR) specclauses5.c -expect 3
.PHONY: special
special:
- $(LCLINTR) special -expect 20
- $(LCLINTR) special -relaxquals -expect 22
+ $(SPLINTR) special -expect 20
+ $(SPLINTR) special -relaxquals -expect 22
.PHONY: stack
stack:
- $(LCLINTR) stack.c -expect 5
- $(LCLINTR) stack.c -stackref
+ $(SPLINTR) stack.c -expect 5
+ $(SPLINTR) stack.c -stackref
.PHONY: staticarray
staticarray:
- $(LCLINTR) staticarray.c -expect 3
+ $(SPLINTR) staticarray.c -expect 3
.PHONY: strings
strings:
- $(LCLINTR) strings.c -expect 3
- $(LCLINTR) -readonlystrings -expect 1 strings.c
- $(LCLINTR) +modobserverstrict -maintype -expect 4 strings.c
+ $(SPLINTR) strings.c -expect 3
+ $(SPLINTR) -readonlystrings -expect 1 strings.c
+ $(SPLINTR) +modobserverstrict -maintype -expect 4 strings.c
.PHONY: structassign
structassign:
- $(LCLINTR) structassign.c -expect 4
+ $(SPLINTR) structassign.c -expect 4
.PHONY: typequals
typequals:
- $(LCLINTR) typequals.c tq.lcl -expect 5
- $(LCLINTR) typequals.c -expect 2
+ $(SPLINTR) typequals.c tq.lcl -expect 5
+ $(SPLINTR) typequals.c -expect 2
.PHONY: ud
ud:
- $(LCLINTR) ud.c -expect 9
- $(LCLINTR) ud2 -specundef -expect 3
+ $(SPLINTR) ud.c -expect 9
+ $(SPLINTR) ud2 -specundef -expect 3
.PHONY: ulstypes
ulstypes:
- $(LCLINTR) ulstypes.c -expect 8
- $(LCLINTR) ulstypes.c +ignorequals
- $(LCLINTRN) ulstypes.c +strict -exportheader -exportheadervar -expect 28
+ $(SPLINTR) ulstypes.c -expect 8
+ $(SPLINTR) ulstypes.c +ignorequals
+ $(SPLINTRN) ulstypes.c +strict -exportheader -exportheadervar -expect 28
# 3 more detected with version 2.5 (change in -numliteral setting)
.PHONY: union
union:
- $(LCLINTR) +memchecks union.c -expect 8
+ $(SPLINTR) +memchecks union.c -expect 8
.PHONY: unreachable
unreachable:
- $(LCLINTR) unreachable.c -expect 5
- $(LCLINTR) -unreachable unreachable.c -expect 2
- $(LCLINTR) switch.c -expect 4
+ $(SPLINTR) unreachable.c -expect 5
+ $(SPLINTR) -unreachable unreachable.c -expect 2
+ $(SPLINTR) switch.c -expect 4
.PHONY: unsignedcompare
unsignedcompare:
- ${LCLINTR} +posixlib unsignedcompare.c -expect 4
+ ${SPLINTR} +posixlib unsignedcompare.c -expect 4
###
### 2001-06-08 evans: 2 new errors after fixing ansireserved name checks
.PHONY: unused
unused:
- $(LCLINTRN) unused.c +checks -exportlocal -expect 5
- $(LCLINTRN) unused.c +checks -exportlocal +topuse -expect 8
+ $(SPLINTRN) unused.c +checks -exportlocal -expect 5
+ $(SPLINTRN) unused.c +checks -exportlocal +topuse -expect 8
###
### 2001-06-10: Provided by Jim Zalenka
.PHONY: ullint
ullint:
- ${LCLINTRN} ullint.c -expect 5
- ${LCLINTRN} ullint.c +charint +charintliteral -expect 2
+ ${SPLINTRN} ullint.c -expect 5
+ ${SPLINTRN} ullint.c +charint +charintliteral -expect 2
.PHONY: void
void:
- ${LCLINTRN} void.c -expect 2
+ ${SPLINTRN} void.c -expect 2
###
### New since 2.5q:
.PHONY: linked
linked:
- ${LCLINTR} linked.c -expect 4
- ${LCLINTR} linked2.c -expect 3
- ${LCLINTR} linked3.c -expect 5
- ${LCLINTR} linked4.c -expect 6
- ${LCLINTR} linked5.c -expect 4
- ${LCLINTR} linked6.c -expect 4
+ ${SPLINTR} linked.c -expect 4
+ ${SPLINTR} linked2.c -expect 3
+ ${SPLINTR} linked3.c -expect 5
+ ${SPLINTR} linked4.c -expect 6
+ ${SPLINTR} linked5.c -expect 4
+ ${SPLINTR} linked6.c -expect 4
.PHONY: freearray
freearray:
- ${LCLINTR} freearray.c -expect 1
+ ${SPLINTR} freearray.c -expect 1
.PHONY: sizeof
sizeof:
- $(LCLINTR) +arraybounds +arrayboundsread sizeof.c -expect 1
+ $(SPLINTR) +arraybounds +arrayboundsread sizeof.c -expect 1
.PHONY: buffertest
buffertest:
- $(LCLINTR) +arraybounds +arrayboundsread buffertest1.c -expect 5
+ $(SPLINTR) +arraybounds +arrayboundsread buffertest1.c -expect 5
.PHONY: $(SUBDIRTESTS)
$(SUBDIRTESTS):
- cd $@; $(MAKE) LCLINT="$(LCLINTRNNEST)"
+ cd $@; $(MAKE) SPLINT="$(SPLINTRNNEST)"
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
abstptr.c:21:3: Assignment of int * to abst *: ap = &b
abstptr.c:22:3: Assignment of int to abst: *ap = b
-Finished LCLint checking --- 9 code errors found, as expected
+Finished checking --- 9 code warnings, as expected
abstptr.c: (in function main)
abstptr.c:14:3: Assignment of abst * to int *: ip = ap2
abstptr.c:21:3: Assignment of int * to abst *: ap = &b
abstptr.c:22:3: Assignment of int to abst: *ap = b
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
commentcmd.c:47:22: Cast to abstract type abst2: (abst2)i
commentcmd.c:48:22: Cast to abstract type abst3: (abst3)i
-Finished LCLint checking --- 15 code errors found, as expected
+Finished checking --- 15 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
alias.c: (in function f)
alias.c:11:3: Possible undocumented modification of *a through alias *x: *x = 3
alias.c:55:12: Owned storage b not released before return
alias.c:52:3: Storage b becomes owned
-Finished LCLint checking --- 19 code errors found, as expected
+Finished checking --- 19 code warnings, as expected
alias2.c: (in function f)
alias2.c:17:3: Variable lx used before definition
alias2.c:56:12: Function returns with global variable globp aliasing parameter
a
-Finished LCLint checking --- 17 code errors found, as expected
+Finished checking --- 17 code warnings, as expected
alias3.c: (in function model)
alias3.c:16:3: Undocumented modification of gst.a: gst.a = 3
alias3.c:65:3: Possible undocumented modification of *(u1->s.b) through alias
*(sl.b): *(sl.b) = 6
-Finished LCLint checking --- 14 code errors found, as expected
+Finished checking --- 14 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
alias4.c: (in function f)
alias4.c:15:10: Function may return reference to parameter a through alias c: c
alias4.c:30:12: Function returns reference to global globs: (globs.field)
alias4.c:32:12: Function returns reference to global globs: (&(globs.val))
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
alias5.c: (in function incx1)
alias5.c:13:3: Possible undocumented modification of p->x through alias p2->x:
alias5.c:30:2: Storage p->x reachable from parameter is kept (should be only)
alias5.c:27:3: Storage p->x becomes kept
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "mut.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
be correct)
alttypes.c:24:33: Previous declaration of x: int | char | bool
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
ansireserved.c: (in function isaFish)
ansireserved.c:16:20: Name wctomb is reserved for the standard library
-Finished LCLint checking --- 9 code errors found, as expected
+Finished checking --- 9 code warnings, as expected
ansireserved.c:9: Name EVANS is reserved for future ANSI library extensions.
Macros beginning with E and a digit or uppercase letter may be added to
letter letter may be added to <string.h>. (See ANSI, Section 4.13.8)
ansireserved.c:16:20: Name wctomb is reserved for the standard library
-Finished LCLint checking --- 11 code errors found, as expected
+Finished checking --- 11 code warnings, as expected
ansireserved.c:9: Name EVANS is reserved for future ANSI library extensions.
Macros beginning with E and a digit or uppercase letter may be added to
ansireserved.c:16:20: Name wctomb is reserved for the standard library
ansireserved.c:5:5: Function atan2f declared but not defined
-Finished LCLint checking --- 12 code errors found, as expected
+Finished checking --- 12 code warnings, as expected
ansireserved2.c:4:2: Name _s1 is in the implementation name space (any
identifier beginning with underscore)
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
argorder.c:10:25: Argument 2 modifies i, used by argument 1 (order of
evaluation of actual parameters is undefined): f((i++, j++), (i = 3), j)
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
argorder2.c: (in function g)
argorder2.c:16:12: Argument 1 modifies i, used by argument 2 (order of
argorder2.c:19:14: Argument 1 modifies i, used by argument 2 (order of
evaluation of actual parameters is undefined): f(i++, i)
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
argorder3.c: (in function f)
argorder3.c:7:8: Expression has undefined behavior (value of left operand i is
used by right operand): --i * ++i
argorder3.c:13:2: Path with no return in function declared to return int
-Finished LCLint checking --- 8 code errors found, as expected
+Finished checking --- 8 code warnings, as expected
argorder4.c: (in function h)
argorder4.c:19:21: Expression has undefined behavior (left operand uses glob,
add((printf("hullo"), 3), (printf("goodbye"), 4))
argorder4.c:35:10: Unreachable code: return (add((pri...
-Finished LCLint checking --- 9 code errors found, as expected
+Finished checking --- 9 code warnings, as expected
argorder4.c: (in function h)
argorder4.c:35:10: Unreachable code: return (add((pri...
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
argorder5.c: (in function f)
argorder5.c:8:9: Variable name used after being released
evaluation of actual parameters is undefined):
test2(copystring(name), f(name))
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
args.c:73:5: Function many3 declared with 1 arg, specified with 3
args.lcl:6: Specification of many3
-Finished LCLint checking --- 12 code errors found, as expected
+Finished checking --- 12 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
blocks.c:21:16: Body of if clause of if statement is empty
blocks.c:22:9: Body of else clause of if statement is empty
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
blocks.c: (in function f)
blocks.c:3:15: Body of if statement is empty
blocks.c:21:16: Body of if clause of if statement is empty
blocks.c:22:9: Body of else clause of if statement is empty
-Finished LCLint checking --- 7 code errors found, as expected
+Finished checking --- 7 code warnings, as expected
blocks.c: (in function f)
blocks.c:4:18: Body of while statement is empty
modified by test or loop body.
blocks.c:7:18: Body of while statement is not a block: x++
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
blocks.c: (in function f)
blocks.c:4:10: Suspected infinite loop. No value used in loop test (x) is
blocks.c:12:23: Body of for statement is empty
blocks.c:13:23: Body of for statement is not a block: x++
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
blocks.c: (in function f)
blocks.c:3:15: Body of if statement is empty
blocks.c:21:16: Body of if clause of if statement is empty
blocks.c:22:9: Body of else clause of if statement is empty
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
blocks.c: (in function f)
blocks.c:3:15: Body of if statement is empty
blocks.c:21:16: Body of if clause of if statement is empty
blocks.c:22:9: Body of else clause of if statement is empty
-Finished LCLint checking --- 11 code errors found, as expected
+Finished checking --- 11 code warnings, as expected
modified by test or loop body.
break.c:34:24: Break preceded by innerbreak is not in a deep loop
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
break.c: (in function f)
break.c:12:4: Break preceded by loopbreak is breaking a switch
modified by test or loop body.
break.c:34:24: Break preceded by innerbreak is not in a deep loop
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
break.c: (in function f)
break.c:12:4: Break preceded by loopbreak is breaking a switch
modified by test or loop body.
break.c:34:24: Break preceded by innerbreak is not in a deep loop
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
needed to satisfy precondition:
requires maxRead(g @ buffertest1.c:21:10) >= 1
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
cases.c:37:13: Fall through case (no preceding break)
cases.c:40:2: Path with no return in function declared to return int
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
cases2.c: (in function f2)
cases2.c:26:5: Variable x is released in one possible execution, but live in
other possible execution.
cases2.c:36:16: Storage x is released
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
cases2.c: (in function f2)
cases2.c:26:5: Variable x is released in one possible execution, but live in
cases2.c:36:16: Storage x is released
cases2.c:1:24: Function g declared but not defined
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
cases2.c: (in function f2)
cases2.c:28:12: Variable x used after being released
cases2.c:36:16: Storage x released
cases2.c:1:24: Function g declared but not defined
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
cast.c:22:19: Last reference ip to owned storage a not released before return
cast.c:20:10: Original reference lost
-Finished LCLint checking --- 20 code errors found, as expected
+Finished checking --- 20 code warnings, as expected
cast2.c: (in function f1)
cast2.c:9:10: Implicitly temp storage x returned as implicitly only: x
cast2.c:15:10: Implicitly dependent storage x returned as implicitly only:
(abst1)x
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
charlit.c:12:14: Variable u initialized to type int, expects unsigned int: -3
To ignore signs in type comparisons use +ignoresigns
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
charlit.c: (in function f)
charlit.c:3:11: Variable x initialized to type char, expects int: 'a'
charlit.c:12:14: Variable u initialized to type int, expects unsigned int: -3
To ignore signs in type comparisons use +ignoresigns
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
branch.
clauses.c:15:13: Storage z is released
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
clauses3.c: (in function h)
clauses3.c:48:5: Storage x->x is released in one path, but live in another.
clauses3.c:61:5: Storage x->x is released in one path, but live in another.
clauses3.c:60:13: Storage x->x is released
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
Warning: selecting unix library. Unix library is ad hoc addition to POSIX
library. Recommend use +posixlib to select POSIX library instead. Use
clauses3.c:61:5: Storage x->x is released in one path, but live in another.
clauses3.c:60:13: Storage x->x is released
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
commentchar.c:6:5: Previous definition of x
commentchar.c:10:9: Variable x initialized to type char, expects int: 'c'
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
commentchar.c:14:1: Syntactic commentchar comment is not followed by a
whitespace character: 5
commentchar.c:1:26: Unrecognized identifier in modifies comment: x
commentchar.c:6:9: Variable x initialized to type char, expects int: 'c'
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
compdestroy.c:25:9: Only storage *(x->ips) (type oip) derived from released
storage is not released (memory leak): x->ips
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
compdestroy.c: (in function sip_free)
compdestroy.c:19:9: Only storage x->ips[] (type oip) derived from released
compdestroy.c:25:9: Only storage *(x->ips) (type oip) derived from released
storage is not released (memory leak): x->ips
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
compdestroy.c: (in function sip_free)
compdestroy.c:16:13: Possibly dead storage x->ips[] passed as out parameter:
compdestroy.c:25:9: Only storage *(x->ips) (type oip) derived from released
storage is not released (memory leak): x->ips
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
compdestroy.c: (in function sip_free)
compdestroy.c:16:13: Possibly dead storage x->ips[] passed as out parameter:
compdestroy.c:25:9: Only storage *(x->ips) (type oip) derived from released
storage is not released (memory leak): x->ips
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
derived from foo precondition: requires maxSet(<parameter 1>) >= <const
int=20>
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
message)
controldepth.c:15:17: Maximum control nesting depth (2) exceeded
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
controldepth.c: (in function f)
controldepth.c:6:15: Maximum control nesting depth (1) exceeded
message)
controldepth.c:11:13: Maximum control nesting depth (1) exceeded
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
czechnames.c:5:5: Variable michelob_light name violates Czech naming
convention. Czech prefix michelob is not the name of a type.
Function or iterator name is not consistent with Czech naming convention.
(Setting either -czechfcns or -namechecks will suppress message)
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
czechnames.c:26:5: Function budweiser name is not consistent with Czech naming
convention. Accessible types: pivo
Function or iterator name is not consistent with Czech naming convention.
(Setting either -czechfcns or -namechecks will suppress message)
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
czechnames.c:4:5: Variable pivo_pyet name violates Czech naming convention.
Czech prefix pivo names an abstract type that is not accessible.
czechnames.c:26:5: Function budweiser name is not consistent with Czech naming
convention. Accessible types: pivo
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
Function name is not consistent with Czechoslovak naming convention. (Setting
either -czechoslovakfcns or -namechecks will suppress message)
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
slovaknames.c:32:5: Function budweiser name is not consistent with Czechoslovak
naming convention.
Function name is not consistent with Czechoslovak naming convention. (Setting
either -czechoslovakfcns or -namechecks will suppress message)
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
slovaknames.c:5:5: Variable michelobLight name violates Slovak naming
convention. Slovak prefix michelob is not the name of a type.
Function name is not consistent with Czechoslovak naming convention. (Setting
either -czechoslovakfcns or -namechecks will suppress message)
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
drive.c: (in function main)
drive.c:123: Return value (type db_status) ignored: hire(e)
-Finished LCLint checking --- 16 code errors found, as expected
+Finished checking --- 16 code warnings, as expected
employee.h:2: Name EMPLOYEE_H is reserved for future ANSI library extensions.
Macros beginning with E and a digit or uppercase letter may be added to
======== =========
Total 333 73
-Finished LCLint checking --- 333 code errors found, as expected
+Finished checking --- 333 code warnings, as expected
###
-### LCLint db1 test
+### Splint db1 test
###
### Taken from sample, second iteration: weakchecks
###
SHELL = /bin/csh -f
-LCLINT = lclint -booltype bool
-LCL = $(LCLINT) -specundef +lh +quiet -nof
-LCLINTLH = $(LCLINT) +lh
+SPLINT = splint -booltype bool
+LCL = $(SPLINT) -specundef +lh +quiet -nof
+SPLINTLH = $(SPLINT) +lh
LCSFILES = bool.lcs dbase.lcs employee.lcs empset.lcs erc.lcs eref.lcs ereftab.lcs
MODULES = bool.lcl employee eref empset ereftab erc dbase drive.c
###
check: $(LCSFILES)
- $(LCLINT) -showcol -weak $(MODULES) -expect 16
- $(LCLINT) -showcol +strict -modfilesystem +showsummary $(MODULES) -expect 333
+ $(SPLINT) -showcol -weak $(MODULES) -expect 16
+ $(SPLINT) -showcol +strict -modfilesystem +showsummary $(MODULES) -expect 333
### The following rules generate .lh and .lcs files from .lcl files. They also
### ensure that .h files appear to be updated whenever the corresponding .lh
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include <stdio.h>
# include "bool.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "bool.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "employee.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "eref.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "employee.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "employee.h"
erc.c:141: Fresh storage returned as unqualified (should be only): result
erc.c:122: Fresh storage result allocated
-Finished LCLint checking --- 15 code errors found, as expected
+Finished checking --- 15 code warnings, as expected
employee.c: (in function employee_setName)
employee.c:17: Parameter 1 (e->name) to function strcpy is declared unique but
drive.c:163: Fresh storage em3 not released before return
drive.c:147: Fresh storage em3 allocated
-Finished LCLint checking --- 25 code errors found, as expected
+Finished checking --- 25 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
###
-### LCLint db2 test
+### Splint db2 test
###
### Taken from sample, fifth iteration: memchecks1
###
SHELL = /bin/csh -f
-LCLINT = lclint -booltype "bool"
-LCL = $(LCLINT) -specundef +lh +quiet -nof
-LCLINTLH = $(LCLINT) +lh
+SPLINT = splint -booltype "bool"
+LCL = $(SPLINT) -specundef +lh +quiet -nof
+SPLINTLH = $(SPLINT) +lh
LCSFILES = dbase.lcs employee.lcs empset.lcs erc.lcs eref.lcs ereftab.lcs
MODULES = employee eref empset ereftab erc dbase drive.c
$(MAKE) -e check
check: $(LCSFILES)
- $(LCLINT) -exportlocal -showcol -allimponly -macrovarprefixexclude $(MODULES) -expect 15
- $(LCLINT) -exportlocal -showcol +allimponly $(MODULES) -expect 25
- $(LCLINT) -exportlocal -showcol -memchecks -macrovarprefixexclude $(MODULES)
+ $(SPLINT) -exportlocal -showcol -allimponly -macrovarprefixexclude $(MODULES) -expect 15
+ $(SPLINT) -exportlocal -showcol +allimponly $(MODULES) -expect 25
+ $(SPLINT) -exportlocal -showcol -memchecks -macrovarprefixexclude $(MODULES)
### The following rules generate .lh and .lcs files from .lcl files. They also
### ensure that .h files appear to be updated whenever the corresponding .lh
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include <stdio.h>
# include "bool.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include <stdio.h>
# include "bool.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "employee.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "eref.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "employee.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "employee.h"
======== =========
Total 0 64
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
eref.c: (in function eref_alloc)
eref.c:36: Called procedure printf may access global stdout
======== =========
Total 77 64
-Finished LCLint checking --- 77 code errors found, as expected
+Finished checking --- 77 code warnings, as expected
###
-### LCLint db3 test
+### Splint db3 test
###
### Taken from sample, thirteenth iteration: strictlib
###
SHELL = /bin/csh -f
-LCLINT = lclint
-LCLINTF = $(LCLINT) -f ./.lclintrc
-LCL = $(LCLINTF) -specundef +lh +quiet -nof
-LCLINTLH = $(LCLINTF) +lh
+SPLINT = splint
+SPLINTF = $(SPLINT) -f ./.splintrc
+LCL = $(SPLINTF) -specundef +lh +quiet -nof
+SPLINTLH = $(SPLINTF) +lh
LCSFILES = dbase.lcs employee.lcs empset.lcs erc.lcs eref.lcs ereftab.lcs bool.lcs check.lcs
MODULES = employee eref empset ereftab erc dbase drive.c bool.lcl check.lcl
OBJS = dbase.o employee.o empset.o erc.o eref.o ereftab.o
@$(MAKE) -e clean
@$(MAKE) -e check
-### Note there is a .lclint file used for checking!
+### Note there is a .splint file used for checking!
check: $(LCSFILES)
- $(LCLINTF) -showcol $(MODULES) +strict -modfilesystem +showsummary -exportconstant -exportlocal -protoparamprefix p_
- $(LCLINTF) -showcol $(MODULES) +strict -modfilesystem +showsummary -exportconstant -exportlocal -protoparamprefix p_ +strictlib -expect 77
+ $(SPLINTF) -showcol $(MODULES) +strict -modfilesystem +showsummary -exportconstant -exportlocal -protoparamprefix p_
+ $(SPLINTF) -showcol $(MODULES) +strict -modfilesystem +showsummary -exportconstant -exportlocal -protoparamprefix p_ +strictlib -expect 77
### The following rules generate .lh and .lcs files from .lcl files. They also
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "bool.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include <stdio.h>
# include "bool.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include <stdio.h>
# include "bool.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "employee.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "eref.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "employee.h"
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
# include "employee.h"
deadparam.c:10:6: Allocated storage s2 corresponds to storage listed in
allocates clause of called function: s2
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
decl.c:7:3: Call to non-function (type [function (int) returns int] **): x
decl.c:8:2: Path with no return in function declared to return int
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
decl.c:3:5: Function main declared without parameter list
decl.c: (in function main)
decl.c:1:5: Function test declared but not defined
decl.c:1:5: Function test exported but not declared in header file
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
decl2.c:3:6: Variable glob2 defined with inconsistent type (arrays and pointers
are not identical in variable declarations): int *
decl2.c:9:5: Variable glob redefined
decl2.c:8:5: Previous definition of glob
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
enum.lcl:3:9: Enum tag enum _ietag specified but not defined
enum.lcl:8:22: Enum member yasta specified but not defined
-Finished LCLint checking --- 16 code errors found, as expected
+Finished checking --- 16 code warnings, as expected
enum.c:2:16: Enumerator member cero declared with inconsistent type:
enum { cero, uno, dos, tres }
enum.lcl:3:9: Enum tag enum _ietag specified but not defined
enum.lcl:8:22: Enum member yasta specified but not defined
-Finished LCLint checking --- 14 code errors found, as expected
+Finished checking --- 14 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
exports.h:5:12: Function f declared but not used
exports.c:8:1: Definition of f
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
exports.h:1:13: Type exported, but not specified: myint
exports.h:3:12: Variable exported, but not specified: glob
exports.h:5:12: Function exported, but not specified: f
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
external.c:2:5: External identifier Func is not distinguishable from func in
the first 6 characters because alphabetical case is ignored
longfunction1 in the first 6 characters (longfu)
external.c:7:5: Declaration of longfunction1
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
external.c:2:5: External identifier Func is not distinguishable from func in
the first 3 characters because alphabetical case is ignored
longfunction1 in the first 3 characters (lon)
external.c:7:5: Declaration of longfunction1
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
external.c:2:5: External identifier Func is not distinguishable from func in
the first 3 characters because alphabetical case is ignored
longfunction1 in the first 3 characters (lon)
external.c:7:5: Declaration of longfunction1
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
external.c:2:5: External identifier Func is not distinguishable from func in
the first 3 characters because alphabetical case is ignored
load file ansi.lcd:785:1: Specification of LONG_MAX
One or more additional indistinguishable external names not reported
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
p->x
fields.c:60:10: Storage p->x becomes null
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
fields2.c: (in function pair_copy)
fields2.c:21:16: Storage p->x reachable from parameter is kept (should be
be implicitly only): p
fields2.c:42:3: Storage p->x becomes kept
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
filerw.c:10:22: f1 becomes rw_write
filerw.xh:3:38: f1 becomes rw_read
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
file.c: (in function f)
file.c:14:5: Control branches merge with incompatible states for fout (closed
file.c:22:14: fin becomes closed
file.c:25:10: Variable res used before definition
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
.PHONY: filerw fileopen
-LCLINT = lclint
+SPLINT = splint
all: filerw fileopen filebranch
filerw:
- ${LCLINT} -mts file -mts filerw filerw.c -expect 3
+ ${SPLINT} -mts file -mts filerw filerw.c -expect 3
fileopen:
- ${LCLINT} -mts file -mts filerw file.c -expect 3
+ ${SPLINT} -mts file -mts filerw file.c -expect 3
filebranch:
- ${LCLINT} -mts file filebranch.c
+ ${SPLINT} -mts file filebranch.c
flags.c:18:20: Flag linelen must be followed by a positive number
number. Followed by asdf
-Finished LCLint checking --- 8 code errors found, as expected
+Finished checking --- 8 code warnings, as expected
flags.c:1:9: Variable x initialized to type char, expects int: 'c'
flags.c:5:9: Variable y initialized to type char, expects int: 'c'
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
needed to satisfy precondition:
requires maxSet(t @ for.c:13:5) >= i @ for.c:13:7
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
.PHONY: check
-LCLINT = lclint -exportlocal
+SPLINT = splint -exportlocal
check:
- $(LCLINT) +arraybounds +arrayboundsread for.c -expect 1
+ $(SPLINT) +arraybounds +arrayboundsread for.c -expect 1
forbody.c:3:50: Unrecognized identifier in macro definition: m_ind
forbody.c:3:115: Assignment of char to int: m_el = 'a'
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
format.c:6:3: Format string parameter to fprintf is not a compile-time
constant: fmt
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
freearray.c:22:9: Only storage *stringTable (type ocp) derived from released
storage is not released (memory leak): stringTable
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
funcpointer.c:50:11: Function (t6) called with 1 args, expects 2
funcpointer.c:50:10: Function ((t6)(3)) called with 0 args, expects 1
-Finished LCLint checking --- 18 code errors found, as expected
+Finished checking --- 18 code warnings, as expected
glob.c:23:11: Called procedure useGlob may access global y
glob.c:23:11: Called procedure useGlob may access global z
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
glob.c: (in function dontuseGlob)
glob.c:13:11: Undocumented use of global x
glob.c:23:11: Called procedure useGlob may access global y
glob.c:23:11: Called procedure useGlob may access global z
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
glob.c: (in function useGlob)
glob.lcl:3: Global z listed but not used
glob.c:23:11: Called procedure useGlob may access global y
glob.c:23:11: Called procedure useGlob may access global z
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
.PHONY: check
-LCLINT = lclint -exportlocal
+SPLINT = splint -exportlocal
check:
- $(LCLINT) +arraybounds +arrayboundsread globalvariable.c
+ $(SPLINT) +arraybounds +arrayboundsread globalvariable.c
globals.c:19:3: Undocumented use of global check
globals.c:21:3: Undocumented use of global checkstrict
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
globals.c:5:41: Redundant checked qualifier on doubled
globals.c:6:46: Contradictory checked and unchecked qualifiers on contradict
globals.c:19:3: Undocumented use of global check
globals.c:21:3: Undocumented use of global checkstrict
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
globals.c:5:41: Redundant checked qualifier on doubled
globals.c:6:46: Contradictory checked and unchecked qualifiers on contradict
globals.c:19:3: Undocumented use of global check
globals.c:21:3: Undocumented use of global checkstrict
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
globals.c:5:41: Redundant checked qualifier on doubled
globals.c:6:46: Contradictory checked and unchecked qualifiers on contradict
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
globals.c:5:41: Redundant checked qualifier on doubled
globals.c:6:46: Contradictory checked and unchecked qualifiers on contradict
globals.c:19:3: Undocumented use of global check
globals.c:21:3: Undocumented use of global checkstrict
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
globals.c:5:41: Redundant checked qualifier on doubled
globals.c:6:46: Contradictory checked and unchecked qualifiers on contradict
globals.c:19:3: Undocumented use of global check
globals.c:21:3: Undocumented use of global checkstrict
-Finished LCLint checking --- 8 code errors found, as expected
+Finished checking --- 8 code warnings, as expected
Source files are .c, .h and .lcl files. If there is no suffix,
- LCLint will look for <file>.c and <file>.lcl.
+ Splint will look for <file>.c and <file>.lcl.
-Use lclint -help <topic or flag name> for more information
+Use splint -help <topic or flag name> for more information
Topics:
version (information on compilation, maintainer)
-Finished LCLint checking --- no code processed
+Finished checking --- no code processed
Source files are .c, .h and .lcl files. If there is no suffix,
- LCLint will look for <file>.c and <file>.lcl.
+ Splint will look for <file>.c and <file>.lcl.
-Use lclint -help <topic or flag name> for more information
+Use splint -help <topic or flag name> for more information
Topics:
message)
-Finished LCLint checking --- no code processed
+Finished checking --- no code processed
Warning: setting +boolint redundant with current value
-Finished LCLint checking --- no code processed
+Finished checking --- no code processed
D<initializer>
I<directory>
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
impabstract.c: (in function f)
impabstract.c:11:7: Left operand of < is abstract type (mint): m < 2
Underlying types match, but mint is an abstract type that is not accessible
here.
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
impabstract.c:2:28: Mutable abstract type cint declared without pointer
indirection: int (violates assignment semantics)
Underlying types match, but cint is an abstract type that is not accessible
here.
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
init.c:14:15: Initializer block used for b[0] where int is expected: { 1, 2 }
init.c:14:25: Initializer block used for b[1] where int is expected: { 3, 4 }
-Finished LCLint checking --- 14 code errors found, as expected
+Finished checking --- 14 code warnings, as expected
init.c:1:16: Global c[0] initialized to null value: c[0] = NULL
init.c:1:22: Read-only string literal storage used as initial value for
init.c:14:15: Initializer block used for b[0] where int is expected: { 1, 2 }
init.c:14:25: Initializer block used for b[1] where int is expected: { 3, 4 }
-Finished LCLint checking --- 17 code errors found, as expected
+Finished checking --- 17 code warnings, as expected
inparam.c:12:16: Passed storage x not completely defined (*x is undefined):
inparam (x)
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
inparam.c: (in function f)
inparam.c:12:16: Passed storage x not completely defined (*x is undefined):
inparam (x)
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
internal.c:21:9: Variable e1 shadows outer declaration
internal.c:12:7: Previous definition of e1: int
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
internal.c:4:5: Internal identifier iwonderhowmanycharactersaresignificant2 is
not distinguishable from iwonderhowmanycharactersaresignificant1 in the
internal.c:21:9: Variable e1 shadows outer declaration
internal.c:12:7: Previous definition of e1: int
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
internal.c:4:5: Internal identifier iwonderhowmanycharactersaresignificant2 is
not distinguishable from iwonderhowmanycharactersaresignificant1 in the
internal.c:21:9: Variable e1 shadows outer declaration
internal.c:12:7: Previous definition of e1: int
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
internal.c: (in function f1)
internal.c:15:8: Internal identifier Alphabet is not distinguishable from
without case sensitivity
internal.c:18:7: Declaration of lcase
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
internal.c:10:6: Internal identifier f1 is not distinguishable from fl except
by lookalike characters
except by lookalike characters
internal.c:27:9: Declaration of numO
-Finished LCLint checking --- 11 code errors found, as expected
+Finished checking --- 11 code warnings, as expected
iter.lcl:3:6: Iterator noYield specified but not defined
iter.lcl:3:6: Iterator finalizer end_noYield specified but not defined
-Finished LCLint checking --- 1 spec error found, as expected
- 14 code errors found, as expected
+Finished checking --- 1 spec warning, as expected
+ 14 code warnings, as expected
iter2.c: (in function test)
iter2.c:9:14: Unrecognized identifier: x
iter2.h:9:1: Macro parameter j used in conditionally executed code (may or may
not be evaluated exactly once) (in post loop test)
-Finished LCLint checking --- 12 code errors found, as expected
+Finished checking --- 12 code warnings, as expected
-%FAILED Output from LCLint 3.0.0.19
+%FAILED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
keep.c:60:10: Kept storage x returned as implicitly only: x
keep.c:58:5: Storage x becomes kept
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
libs.c:55:3: Return value (type [function (int) returns void]) ignored:
signal(SIGHUP, l...
-Finished LCLint checking --- 18 code errors found, as expected
+Finished checking --- 18 code warnings, as expected
libs.c: (in function compare2)
libs.c:14:10: Observer storage returned without qualification: "ok"
libs.c:55:3: Return value (type [function (int) returns void]) ignored:
signal(SIGHUP, l...
-Finished LCLint checking --- 22 code errors found, as expected
+Finished checking --- 22 code warnings, as expected
libs.c: (in function compare2)
libs.c:14:10: Observer storage returned without qualification: "ok"
libs.c:55:3: Return value (type [function (int) returns void]) ignored:
signal(SIGHUP, l...
-Finished LCLint checking --- 25 code errors found, as expected
+Finished checking --- 25 code warnings, as expected
libs.c: (in function compare2)
libs.c:14:10: Observer storage returned without qualification: "ok"
libs.c:55:3: Return value (type [function (int) returns void]) ignored:
signal(SIGHUP, l...
-Finished LCLint checking --- 42 code errors found, as expected
+Finished checking --- 42 code warnings, as expected
node_free1 (nn)
linked.c:21:13: Storage nn may become null
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
linked2.c: (in function node_free2)
linked2.c:15:8: Variable nn declared but not used
linked2.c:23:15: Dependent storage nn passed as only param: node_free1 (nn)
linked2.c:23:15: Storage nn becomes dependent
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
linked3.c: (in function node_free1)
linked3.c:10:9: Only storage n->val (type char *) derived from released storage
linked3.c:16:9: Storage nn becomes only
linked3.c:15:8: Variable nn declared but not used
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
linked4.c: (in function node_free1)
linked4.c:14:9: Only storage n->val (type item) derived from released storage
linked4.c:26:9: Only storage n->val->val (type char *) derived from released
storage is not released (memory leak): n->val
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
linked5.c: (in function node_free1)
linked5.c:14:9: Only storage n->next (type node) derived from released storage
linked5.c: (in function node_free3)
linked5.c:26:9: Dependent storage n->val passed as only param: free (n->val)
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
linked6.c: (in function node_free1)
linked6.c:16:9: Only storage n->val (type item) derived from released storage
linked6.c:23:9: Storage nn becomes only
linked6.c:21:8: Variable nn declared but not used
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
interpreted by LCLint in the same way as most Unix lints, but it is
preferable to replace it with the /*@notreached@*/ semantic comment.
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
lintcomments.c: (in function f)
lintcomments.c:11:13: Fall through case (no preceding break)
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
lintcomments.c: (in function f)
lintcomments.c:9:10: Fall through case (no preceding break)
lintcomments.c:11:13: Fall through case (no preceding break)
lintcomments.c:24:8: Unreachable code: i++
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
list.c:39:2: Storage *(l->next) reachable from parameter contains 1 undefined
field: next
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
macros.c: (in macro var2)
macros.c:28:15: Macro parameter x used more than once
-Finished LCLint checking --- 17 code errors found, as expected
+Finished checking --- 17 code warnings, as expected
macros.c:3: Parameterized macro has no prototype or specification: mustard
macros.c: (in macro mustard)
macros.c: (in macro var2)
macros.c:28:15: Macro parameter x used more than once
-Finished LCLint checking --- 34 code errors found, as expected
+Finished checking --- 34 code warnings, as expected
macros.c:3: Parameterized macro has no prototype or specification: mustard
macros.c: (in macro mustard)
macros.c: (in macro var2)
macros.c:28:15: Macro parameter x used more than once
-Finished LCLint checking --- 31 code errors found, as expected
+Finished checking --- 31 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
macrosef.c:14:14: Parameter 1 to f is declared sef, but the argument may modify
*p: g(p)
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
macrosef.c: (in macro f)
macrosef.c:2:14: Macro parameter y used more than once
macrosef.c:12:14: Parameter 1 to f is declared sef, but the argument may modify
*stdout: (printf("yo\n"), 3)
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
macrosef.c: (in macro f)
macrosef.c:2:14: Macro parameter y used more than once
macrosef.c:14:14: Parameter 1 to f is declared sef, but the argument calls
unconstrained function g (no guarantee it will not modify something): g(p)
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
maxsetnoannotations.c: (in function noancopy)
maxsetnoannotations.c:2:3: Possible out-of-bounds store:
derived from strcpy precondition: requires maxSet(<parameter 1>) >=
maxRead(<parameter 2>)
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
.PHONY: check
-LCLINT = lclint -exportlocal
+SPLINT = splint -exportlocal
check:
- $(LCLINT) +arraybounds maxsetannotations.c
- $(LCLINT) +arraybounds maxsetnoannotations.c -expect 1
+ $(SPLINT) +arraybounds maxsetannotations.c
+ $(SPLINT) +arraybounds maxsetnoannotations.c -expect 1
merge.c:51:4: Dereference of possibly null pointer y: *y
merge.c:50:7: Storage y may become null
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
taintednm.c:1:32: s becomes tainted
taintednm.c:24:10: Stack-allocated storage t reachable from return value: t
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
taintednm.c: (in function f)
taintednm.c:16:18: Invalid transfer from tainted t to untainted (Possibly
taintednm.xh:23:55: s becomes untainted
taintednm.c:24:10: Stack-allocated storage t reachable from return value: t
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
.PHONY: tainted
-LCLINT = lclint
+SPLINT = splint
all: tainted
tainted:
- ${LCLINT} -mts taintednm taintednm.c -mustfree -exportlocal -expect 2
- ${LCLINT} -mts tainted taintednm.c -mustfree -exportlocal -expect 4
+ ${SPLINT} -mts taintednm taintednm.c -mustfree -exportlocal -expect 2
+ ${SPLINT} -mts tainted taintednm.c -mustfree -exportlocal -expect 4
file1.c:1:53: parameter 1 becomes open
file1.c:7:8: Variable s declared but not used
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
file2.c: (in function main)
file2.c:11:6: Scope exit loses reference fle2 in invalid state implicitly open
(open file not closed)
file2.c:5:37: State becomes implicitly open
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
file3.c: (in function main)
file3.c:10:22: Possibly null storage fle1 passed as non-null param:
file3.c:6:37: fle1 becomes implicitly open
file3.c:10:14: fle1 becomes unopen
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
file4.c: (in function main)
file4.c:15:14: Invalid transfer from implicitly unopen fle to open (unopen file
file4.c:11:14: fle becomes implicitly unopen
file4.c:1:53: parameter 1 becomes open
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
file5.c: (in function passOpen)
file5.c:8:2: Ensures clause not satisfied by f (state is open):
file5.c:34:3: fle becomes unopen
file.xh:1:44: parameter 1 becomes open
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
file6.c: (in function newOpenBad)
file6.c:20:10: Invalid transfer from unopen res to open (unopen file passed as
(open file not closed)
file6.c:27:3: State becomes implicitly open
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
filebad.c:1:23: Attribute annotation open used in inconsistent context:
int badOpen(FILE *)
filebad.c:3:12: Attribute annotation open used on inappropriate reference p_x
in ensures open clause of badEnsures: ensures open p_x
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
sockets.c: (in function test1)
sockets.c:13:3: Requires clause of called function useSockets not satisfied
sockets.c:42:3: Requires clause of called function useSockets not satisfied
(state is uninitialized): requires sockets_initialized
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
sockets2.c: (in function test1)
sockets2.c:15:4: Control branches merge with incompatible global states
sockets2.c:20:24: <global marker> becomes initialized
sockets2.c:23:5: <global marker> becomes uninitialized
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
struct.c: (in function source_badClose)
struct.c:10:2: Function returns with parameter s in inconsistent state (s->file
is unopen, should be open): unopen file passed as open
struct.c:9:10: s->file becomes unopen
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
nullbranch.c: (in function ftest2)
nullbranch.c:30:22: Possibly null storage f passed as non-null param:
not closed)
nullbranch.c:22:3: State becomes open
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
osd.c: (in function osd_fileIsReadable)
osd.c:9:7: Return value (type int) ignored: fclose(fl)
osd.c:10:14: Return value type bool does not match declared type int: (TRUE)
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
.PHONY: tainted file
-LCLINT = lclint
+SPLINT = splint
all: file sockets struct nullbranch osd
file:
- ${LCLINT} -mts file file1.c -expect 4
- ${LCLINT} -mts file file2.c -varuse -fcnuse -expect 2
- ${LCLINT} -mts file file3.c -varuse -fcnuse -expect 2
- ${LCLINT} -mts file file4.c -varuse -fcnuse -exportlocal -expect 1
- ${LCLINT} -mts file file5.c -varuse -fcnuse -exportlocal -expect 4
- ${LCLINT} -mts file file6.c -varuse -fcnuse -exportlocal -expect 2
- ${LCLINT} -mts file filebad.c -expect 3
+ ${SPLINT} -mts file file1.c -expect 4
+ ${SPLINT} -mts file file2.c -varuse -fcnuse -expect 2
+ ${SPLINT} -mts file file3.c -varuse -fcnuse -expect 2
+ ${SPLINT} -mts file file4.c -varuse -fcnuse -exportlocal -expect 1
+ ${SPLINT} -mts file file5.c -varuse -fcnuse -exportlocal -expect 4
+ ${SPLINT} -mts file file6.c -varuse -fcnuse -exportlocal -expect 2
+ ${SPLINT} -mts file filebad.c -expect 3
sockets:
- ${LCLINT} sockets.mts sockets.c -expect 3
- ${LCLINT} sockets.mts sockets2.c -expect 2
+ ${SPLINT} sockets.mts sockets.c -expect 3
+ ${SPLINT} sockets.mts sockets2.c -expect 2
struct:
- ${LCLINT} -mts file struct.c -expect 1
+ ${SPLINT} -mts file struct.c -expect 1
nullbranch:
- ${LCLINT} -mts file nullbranch.c -expect 2
+ ${SPLINT} -mts file nullbranch.c -expect 2
osd:
- ${LCLINT} -mts file osd.c -expect 2
+ ${SPLINT} -mts file osd.c -expect 2
modclient.c: (in function mod)
modclient.c:3:3: Statement has no effect: (void)f1(p)
-Finished LCLint checking --- 7 code errors found, as expected
+Finished checking --- 7 code warnings, as expected
modtest.c:26:3: Undocumented modification of y possible from call to g: g(j, i)
modtest.c:26:3: Return value (type int) ignored: g(j, i)
-Finished LCLint checking --- 10 code errors found, as expected
+Finished checking --- 10 code warnings, as expected
modtest.c: (in function g)
modtest.lcl:15: Global x listed but not used
modtest.c:34:10: Undocumented modification of y possible from call to g:
g(a, &x)
-Finished LCLint checking --- 13 code errors found, as expected
+Finished checking --- 13 code warnings, as expected
modtest.c: (in function g)
modtest.lcl:15: Global x listed but not used
modtest.c:29:1: Suspect object listed in modifies of f not modified: tstp->a
modtest.lcl:8: Specification of f
-Finished LCLint checking --- 14 code errors found, as expected
+Finished checking --- 14 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
moduncon.c:13:10: Undetected modification possible from call to unconstrained
function umod: umod
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
moduncon.c: (in function f)
moduncon.c:6:22: Undetected modification possible from call to unconstrained
moduncon.c:10:5: Function g exported but not declared in header file
moduncon.c:15:1: Definition of g
-Finished LCLint checking --- 22 code errors found, as expected
+Finished checking --- 22 code warnings, as expected
minc3.h:2: Maximum include nesting depth (1, current depth 2) exceeded
mongoincludes.c:3: Include site
-Finished LCLint checking --- 19 code errors found, as expected
+Finished checking --- 19 code warnings, as expected
minc4.h:1: Maximum include nesting depth (2, current depth 3) exceeded
minc1.h:1: Include site
minc1.h:4: Include site
mongoincludes.c:1: Include site
-Finished LCLint checking --- 10 code errors found, as expected
+Finished checking --- 10 code warnings, as expected
minc3.h:1: Maximum include nesting depth (3, current depth 4) exceeded
minc2.h:1: Include site
minc1.h:3: Include site
mongoincludes.c:1: Include site
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
minc4.h:1: Maximum include nesting depth (4, current depth 5) exceeded
minc3.h:1: Include site
minc1.h:3: Include site
mongoincludes.c:1: Include site
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
derived from strncat precondition: requires maxSet(<parameter 1>) >=
maxRead(<parameter 1>) + <parameter 3>
-Finished LCLint checking --- 8 code errors found, as expected
+Finished checking --- 8 code warnings, as expected
.PHONY: check
-LCLINT = lclint
+SPLINT = splint
check:
- $(LCLINT) -exportlocal +arraybounds +arrayboundsread unrecogCall.c strrchr.c initialization.c simplifyTest.c strncatNotReallyGood.c strncatReallyGood.c -expect 8
+ $(SPLINT) -exportlocal +arraybounds +arrayboundsread unrecogCall.c strrchr.c initialization.c simplifyTest.c strncatNotReallyGood.c strncatReallyGood.c -expect 8
needed to satisfy precondition:
requires maxSet(c @ unknownsize.c:9:3) >= 9
-Finished LCLint checking --- 1 code error found
+Finished checking --- 1 code warning found
.PHONY: check
-#LCLINT = lclint
+#SPLINT = splint
check:
- $(LCLINT) -exportlocal +arraybounds +arrayboundsread unknownsize.c arrayConstExpr.c
+ $(SPLINT) -exportlocal +arraybounds +arrayboundsread unknownsize.c arrayConstExpr.c
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
derived from mystrncat precondition:
requires maxSet(<parameter 1>) >= maxRead(<parameter 1>) + <parameter 3>
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
header to suppress message. (-fcnuse will suppress message)
noeffect.c:3: Definition of exprNode_swap
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
null1.c:67:12: Fresh storage z3 not released before return
null1.c:27:3: Fresh storage z3 allocated
-Finished LCLint checking --- 14 code errors found, as expected
+Finished checking --- 14 code warnings, as expected
null1.c: (in function f)
null1.c:19:20: Implicitly temp storage x returned as only: x
null1.c:67:12: Fresh storage z3 not released before return
null1.c:27:3: Fresh storage z3 allocated
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
null2.c: (in function f)
null2.c:15:10: Left operand of && is non-boolean (int *): x1 && (*x1 == 3)
null2.c:11:21: Storage x3 may become null
null2.c:39:10: Implicitly temp storage x1 returned as only: (x1)
-Finished LCLint checking --- 10 code errors found, as expected
+Finished checking --- 10 code warnings, as expected
null3.c: (in function f3)
null3.c:16:4: Dereference of possibly null pointer gnip: *gnip
null3.c:73:4: Dereference of possibly null pointer gnip: *gnip
null3.c:55:10: Storage gnip may become null
-Finished LCLint checking --- 15 code errors found, as expected
+Finished checking --- 15 code warnings, as expected
null3.c: (in function f3)
null3.c:16:4: Dereference of possibly null pointer gnip: *gnip
null3.c:73:4: Dereference of possibly null pointer gnip: *gnip
null3.c:55:10: Storage gnip may become null
-Finished LCLint checking --- 16 code errors found, as expected
+Finished checking --- 16 code warnings, as expected
null4.c: (in function g)
null4.c:43:3: Only storage p (type int *) not released before assignment:
p = malloc(24)
null4.c:3:28: Storage p becomes only
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
null5.c:5:29: Qualifier falsenull used with function returning char (should
return bool)
null5.c:37:11: Dereference of null pointer y: *y
null5.c:30:25: Storage y becomes null
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
null6.c:7:36: Function f1 declared with notnull parameter x of abstract type
mnull
null6.c:84:10: Possibly null storage x returned as non-null: x
null6.c:81:11: Storage x may become null
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
null6.c:7:36: Function f1 declared with notnull parameter x of abstract type
mnull
null6.c:84:10: Possibly null storage x returned as non-null: x
null6.c:81:11: Storage x may become null
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
-;;LCLint Dump: null6.lcd
-;;LCLint 3.0.0.19 --- 5 October 2001
+;;; Splint Library null6.lcd
+;;Splint 3.0.0.20 --- 5 October 2001
;;lib:169
;;ctTable
0 u-2 19 38
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
observer.c:41:10: Observer storage s returned without qualification: s
observer.c:40:7: Storage s becomes observer
-Finished LCLint checking --- 9 code errors found, as expected
+Finished checking --- 9 code warnings, as expected
observer.c: (in function stx_name)
observer.c:9:10: Function returns reference to parameter x: (x->name)
observer.c:41:10: Observer storage s returned without qualification: s
observer.c:40:7: Storage s becomes observer
-Finished LCLint checking --- 8 code errors found, as expected
+Finished checking --- 8 code warnings, as expected
observer.c: (in function stx_name)
observer.c:9:20: Released storage x->name reachable from parameter at return
observer.c:41:10: Observer storage s returned without qualification: s
observer.c:40:7: Storage s becomes observer
-Finished LCLint checking --- 7 code errors found, as expected
+Finished checking --- 7 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
declared char, specified char *
oldstyle.lcl:4:1: Specification of y: char *
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
outglob.c:41:13: Function returns with global x3 undefined
outglob.lcl:3: Storage x3 becomes undefined
-Finished LCLint checking --- 10 code errors found, as expected
+Finished checking --- 10 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
outparam.c:48:13: Fresh storage t4 not released before return
outparam.c:46:3: Fresh storage t4 allocated
-Finished LCLint checking --- 12 code errors found, as expected
+Finished checking --- 12 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
postnotnull.c:20:2: Only storage a.x (type char *) derived from variable
declared in this scope is not released (memory leak)
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
suppress message)
preds.c:35:7: Test expression for if not bool, type char: c
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
preds.c: (in function f)
preds.c:20:7: Test expression for if is assignment expression: b1 = b2
(e.g., if ((a = b)) ...) to suppress this message. (-predassign will suppress
message)
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
preds.c: (in function f)
preds.c:5:8: Operand of ! is non-boolean (int *): !p
preds.c:3:5: Function f declared but not used
preds.c:41:1: Definition of f
-Finished LCLint checking --- 12 code errors found, as expected
+Finished checking --- 12 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
prefixes.c:20: Parameterized macro has no prototype or specification: mf
prefixes.c: (in macro mf)
prefixes.c:20:37: Variable y declared but not used
prefixes.c:20:26: Variable m_x declared but not used
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
prefixes.c:2:13: Datatype QINT name is not consistent with user-defined type
namespace prefix "T"
prefixes.c:3:13: Datatype tint name is not consistent with user-defined type
namespace prefix "T"
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
prefixes.c:3:13: Datatype tint name is not consistent with user-defined type
namespace prefix "^"
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
prefixes.c:1:13: Datatype Tin_ty name is not consistent with user-defined type
namespace prefix "^*"
prefixes.c:3:13: Datatype tint name is not consistent with user-defined type
namespace prefix "^*"
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
prefixes.c:2:13: Datatype QINT name is not consistent with user-defined type
namespace prefix "^%*"
prefixes.c:3:13: Datatype tint name is not consistent with user-defined type
namespace prefix "^%*"
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
prefixes.c:1:13: Datatype Tin_ty name is not consistent with user-defined type
namespace prefix "^~*"
prefixes.c:3:13: Datatype tint name is not consistent with user-defined type
namespace prefix "^~*"
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
prefixes.c:3:13: Datatype tint name is not consistent with user-defined type
namespace prefix "^"
prefixes.c:14:12: Variable Gint name is not a user-defined type (it is a
external), but matches the user-defined type namespace prefix "^"
-Finished LCLint checking --- 7 code errors found, as expected
+Finished checking --- 7 code warnings, as expected
prefixes.c:8:12: Variable V3int name is not consistent with file static
namespace prefix "^^"
prefixes.c:11:12: Variable XqmXt name is not consistent with file static
namespace prefix "^^"
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
prefixes.c:6:12: Variable FSint name is not consistent with file static
namespace prefix "^#"
prefixes.c:11:12: Variable XqmXt name is not consistent with file static
namespace prefix "^#"
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
prefixes.c:6:12: Variable FSint name is not consistent with file static
namespace prefix "^?&x"
prefixes.c:11:12: Variable XqmXt name is not consistent with file static
namespace prefix "^?&x"
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
prefixes.c:15:12: Variable aGb_Xint name is not consistent with global variable
namespace prefix "G"
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
prefixes.c:14:12: Variable Gint name is not consistent with global variable
namespace prefix "&G?_^"
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
prefixes.c:1:13: Datatype Tin_ty name is not consistent with external namespace
prefix "G"
prefixes.c:18:12: Function g name is not consistent with external namespace
prefix "G"
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
prefixes.c:2:13: Datatype QINT name is not consistent with user-defined type
namespace prefix "T"
prefixes.c:18:12: Function g name is not consistent with external namespace
prefix "G"
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
prefixes.c:20: Expanded macro mf name is not a local variable (it is a
unchecked macro), but matches the local variable namespace prefix "?*"
prefixes.c:18:12: Function g name is not a local variable (it is a external),
but matches the local variable namespace prefix "?*"
-Finished LCLint checking --- 13 code errors found, as expected
+Finished checking --- 13 code warnings, as expected
printflike.c:17:5: Function qxprint is marked messagelike, but the argument
before the elipsis has type int (should be char *)
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
printflike.c:2:5: Function mprint is marked printflike, but has no elipsis
parameter
printflike.c:17:5: Function qxprint is marked messagelike, but the argument
before the elipsis has type int (should be char *)
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
"a flag\"wicked cool"
rc.c:3:10: Storage becomes observer
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
rc.c: (in function f)
rc.c:3:10: Return value type int does not match declared type char *: 12
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
-rc2.lclintrc:1:18: Warning: setting +boolint redundant with current value
+rc2.splintrc:1:18: Warning: setting +boolint redundant with current value
rc.c: (in function f)
rc.c:3:10: Observer storage returned without qualification: "a silly\"flag\"\\"
rc.c:3:10: Storage becomes observer
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
-rc2.lclintrc:1:18: Warning: setting +boolint redundant with current value
+rc2.splintrc:1:18: Warning: setting +boolint redundant with current value
rc.c: (in function f)
rc.c:3:10: Unrecognized identifier: MYSTERY
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
-rc3.lclintrc:2:1: Bad flag syntax (+ or - expected, + is assumed):
+rc3.splintrc:2:1: Bad flag syntax (+ or - expected, + is assumed):
internalnamelen 73
A flag is not recognized or used in an incorrect way (-badflag will suppress
message)
-rc3.lclintrc:5:24: Flag dump must be followed by an argument
+rc3.splintrc:5:24: Flag dump must be followed by an argument
rc.c: (in function f)
rc.c:3:10: Unrecognized identifier: MYSTERY
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
#
-# rc1.lclintrc
+# rc1.splintrc
#
-DMYSTERY="a silly\"flag\"\\"
--f rc2.lclintrc
\ No newline at end of file
+-f rc2.splintrc
refcounts.c:72:13: New reference z2 not released before return
refcounts.c:71:3: Storage z2 becomes newref
-Finished LCLint checking --- 7 code errors found, as expected
+Finished checking --- 7 code warnings, as expected
release.c:25:12: Owned storage z not released before return
release.c:22:7: Storage z becomes owned
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
repexpose.c: (in function abst_setIm)
repexpose.c:57:3: Undocumented modification of a->im: a->im = im
-Finished LCLint checking --- 12 code errors found, as expected
+Finished checking --- 12 code warnings, as expected
repexpose.c: (in function abst_create)
repexpose.c:8:4: Arrow access from possibly null pointer a: a->name
repexpose.c: (in function abst_setIm)
repexpose.c:57:3: Undocumented modification of a->im: a->im = im
-Finished LCLint checking --- 15 code errors found, as expected
+Finished checking --- 15 code warnings, as expected
repexpose.c: (in function abst_create)
repexpose.c:8:4: Arrow access from possibly null pointer a: a->name
repexpose.c:57:3: Undocumented modification of a->im: a->im = im
repexpose.lh:6:16: Variable globstring declared but not defined
-Finished LCLint checking --- 27 code errors found, as expected
+Finished checking --- 27 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-/* Output from LCLint 3.0.0.19 */
+/* Output from Splint 3.0.0.20 */
# include "bool.h"
returned.c:6:4: Dereference of possibly null pointer s: *s
returned.c:5:13: Storage s may become null
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
storage
sharing1.c:57:9: Storage globonly is released
-Finished LCLint checking --- 21 code errors found, as expected
+Finished checking --- 21 code warnings, as expected
sharing3.c: (in function string_copy)
sharing3.c:17:10: Implicitly temp storage s returned as only: s
sharing3.c:45:2: Fresh storage t not released before return
sharing3.c:42:29: Fresh storage t allocated
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
sharing4.c: (in function f)
sharing4.c:18:3: Only storage globonly1 (type char *) not released before
storage
sharing4.c:21:9: Storage globonly3 is released
-Finished LCLint checking --- 13 code errors found, as expected
+Finished checking --- 13 code warnings, as expected
sharing4.c: (in function f)
sharing4.c:18:3: Only storage globonly1 (type char *) not released before
storage
sharing4.c:21:9: Storage globonly3 is released
-Finished LCLint checking --- 12 code errors found, as expected
+Finished checking --- 12 code warnings, as expected
sharing5.c: (in function f)
sharing5.c:13:4: Variable only1 used after being released
sharing5.c:33:2: Only storage only3 not released before return
sharing5.c:4:73: Storage only3 becomes only
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
needed to satisfy precondition:
requires maxSet(j @ test7.c:8:3) >= 0
-Finished LCLint checking --- 7 code errors found, as expected
+Finished checking --- 7 code warnings, as expected
.PHONY: check
-LCLINT = lclint -exportlocal
+SPLINT = splint -exportlocal
check:
- $(LCLINT) +arraybounds +arrayboundsread m.c sizeof.c test3.c test7.c -expect 7
+ $(SPLINT) +arraybounds +arrayboundsread m.c sizeof.c test3.c test7.c -expect 7
needed to satisfy precondition:
requires maxSet(x @ sizeof.c:6:3) >= 3
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
An abstraction barrier is broken. If necessary, use /*@access <type>@*/ to
allow access to an abstract type. (-abstract will suppress message)
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
slovaknames.c:5:5: Variable michelobLight name violates Slovak naming
convention. Slovak prefix michelob is not the name of a type.
Function or iterator name is not consistent with Slovak naming convention.
(Setting either -slovakfcns or -namechecks will suppress message)
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
slovaknames.c:19:5: Function samAdams name violates Slovak naming convention.
Slovak prefix sam is not the name of a type.
Function or iterator name is not consistent with Slovak naming convention.
(Setting either -slovakfcns or -namechecks will suppress message)
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
slovaknames.c:4:5: Variable pivoPyet name violates Slovak naming convention.
Slovak prefix pivo names an abstract type that is not accessible.
slovaknames.c:32:5: Function budweiser name is not consistent with Slovak
naming convention. Accessible types: pivo
-Finished LCLint checking --- 7 code errors found, as expected
+Finished checking --- 7 code warnings, as expected
specclauses.c:40:23: Field r.name used after being released
specclauses.c:39:17: Storage r.name released
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
specclauses2.c:10:13: Allocates clauses includes r->year of non-dynamically
allocated type int
specclauses2.c:76:2: Unreleased storage r->name corresponds to storage listed
in releases clause
-Finished LCLint checking --- 8 code errors found, as expected
+Finished checking --- 8 code warnings, as expected
specclauses3.c:7:6: Special clause accesses field of non-struct or union result
(int): *(result).name
specclauses3.c:55:10: Unallocated storage res->name corresponds to storage
result->name listed in allocates clause: res
-Finished LCLint checking --- 6 code errors found, as expected
+Finished checking --- 6 code warnings, as expected
specclauses4.c: (in function usename)
specclauses4.c:13:4: Dereference of null pointer *name: **name
specclauses4.c:42:2: Non-null storage *name corresponds to storage listed in
ensures isnull clause
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
specclauses5.c: (in function createrecord2)
specclauses5.c:31:10: Null storage r->name derivable from return value: r
return value
specclauses5.c:48:27: Storage r->name becomes observer
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
special.c:42:10: Undocumented modification of gs possible from call to fscanf:
fscanf(stdin, "hullo, welcome to %*23d %*c %s", gs)
-Finished LCLint checking --- 20 code errors found, as expected
+Finished checking --- 20 code warnings, as expected
special.c: (in function f)
special.c:17:34: Variable c used before definition
special.c:42:10: Undocumented modification of gs possible from call to fscanf:
fscanf(stdin, "hullo, welcome to %*23d %*c %s", gs)
-Finished LCLint checking --- 22 code errors found, as expected
+Finished checking --- 22 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
stack.c:31:11: Stack-allocated storage sa reachable from return value: sa
stack.c:35:11: Stack-allocated storage sa reachable from return value: &sa[0]
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
staticarray.c:27:10: Implicitly temp storage outstr returned as implicitly
only: outstr
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
strchr.c:5:7: Storage c may become null
strchr.c:6:3: Suspect modification of observer c: *c = 'd'
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
.PHONY: check
-LCLINT = lclint -exportlocal
+SPLINT = splint -exportlocal
check:
- $(LCLINT) +arraybounds +arrayboundsread strchr.c -expect 2
+ $(SPLINT) +arraybounds +arrayboundsread strchr.c -expect 2
strings.c:25:7: Observer storage passed as only param: f3 ("hullo")
strings.c:25:7: Storage becomes observer
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
strings.c:21:6: Function main declared to return void, should return int
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
strings.c: (in function main)
strings.c:23:14: Call to unconstrained function f1 may modify observer: "hullo"
strings.c:25:7: Observer storage passed as only param: f3 ("hullo")
strings.c:25:7: Storage becomes observer
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
structassign.c:45:14: Only storage rc.name (type char *) derived from variable
declared in this scope is not released (memory leak)
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
tainted.c:19:3: t becomes tainted
tainted.xh:26:55: s becomes untainted
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
tainted-bad.mts:18:7: Transfer clause uses unrecognized result state peach:
untainted as tainted ==> peach
tainted.c:15:3: t becomes tainted
tainted.xh:26:55: s becomes untainted
-Finished LCLint checking --- 9 code errors found, as expected
+Finished checking --- 9 code warnings, as expected
tainted2.c: (in function test)
tainted2.c:20:10: Invalid transfer from tainted stk to untainted (Possibly
tainted2.c:17:14: stk becomes tainted
tainted2.c:4:2: becomes untainted
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
tainted3.c: (in function test)
tainted3.c:7:19: Invalid transfer from tainted def to untainted (Possibly
tainted3.c:4:36: def becomes tainted
tainted3.c:1:53: def becomes untainted
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
tainted4.c: (in function test)
tainted4.c:9:19: Invalid transfer from tainted def to untainted (*def):
Possibly tainted storage used as untainted.
tainted4.c:6:36: def becomes tainted
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
taintedmerge.c: (in function f)
taintedmerge.c:11:18: Invalid transfer from tainted t to untainted (Possibly
tainted.xh:26:55: s becomes untainted
taintedmerge.c:16:10: Stack-allocated storage t reachable from return value: t
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
taintedimplicit.c: (in function dangerouscall)
taintedimplicit.c:17:18: Invalid transfer from tainted [result of taintme] to
taintedimplicit.c:17:18: becomes tainted
tainted.xh:26:55: s becomes untainted
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
sprintf.c: (in function sp)
sprintf.c:11:18: Invalid transfer from tainted s to untainted (Possibly tainted
sprintf.c:13:61: s becomes tainted
tainted.xh:26:55: s1 becomes untainted
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
.PHONY: tainted
-LCLINT = lclint
+SPLINT = splint
all: tainted
tainted:
- ${LCLINT} -mts tainted tainted.c -mustfree -exportlocal -expect 4
- ${LCLINT} tainted-bad.mts tainted.xh tainted.c -mustfree -exportlocal -expect 9
- ${LCLINT} -mts tainted tainted2.c -mustfree -exportlocal -expect 1
- ${LCLINT} -mts tainted tainted3.c -mustfree -exportlocal -expect 1
- ${LCLINT} -mts tainted tainted4.c -mustfree -exportlocal -expect 1
- ${LCLINT} -mts tainted tainted5.c -mustfree -exportlocal
- ${LCLINT} -mts tainted taintedmerge.c -mustfree -exportlocal -expect 3
- ${LCLINT} -mts tainted taintedimplicit.c -mustfree -exportlocal -expect 1
- ${LCLINT} -mts tainted sprintf.c -expect 2
+ ${SPLINT} -mts tainted tainted.c -mustfree -exportlocal -expect 4
+ ${SPLINT} tainted-bad.mts tainted.xh tainted.c -mustfree -exportlocal -expect 9
+ ${SPLINT} -mts tainted tainted2.c -mustfree -exportlocal -expect 1
+ ${SPLINT} -mts tainted tainted3.c -mustfree -exportlocal -expect 1
+ ${SPLINT} -mts tainted tainted4.c -mustfree -exportlocal -expect 1
+ ${SPLINT} -mts tainted tainted5.c -mustfree -exportlocal
+ ${SPLINT} -mts tainted taintedmerge.c -mustfree -exportlocal -expect 3
+ ${SPLINT} -mts tainted taintedimplicit.c -mustfree -exportlocal -expect 1
+ ${SPLINT} -mts tainted sprintf.c -expect 2
boolops.c: (in function main)
boolops.c:12:3: Assignment of int to Kzam: b = 12
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
mbool.h:1:17: Type implemented as macro: bool
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
boolenum.c: (in function main)
boolenum.c:11:8: Use of == with BOOLEAN variables (risks inconsistency because
of multiple true values): a == TRUE
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
break.c: (in function f)
break.c:9:4: Dereference of possibly null pointer x: *x
break.c:1:24: Storage x may become null
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
bstring.c:4:14: Initial value of s4[0] is type char *, expects char: "hullo"
bstring.c:4:23: Initial value of s4[1] is type char *, expects char: "g'bye"
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
decl.c:3:21: Structure struct tm declared with fields { int x; }, specified
with fields { int tm_sec; int tm_min; int tm_hour;, ... }
decl.c:3:17: Field tm_sec in specified corresponds to x in declaration
load file ansi.lcd:637:1: Specification of tm_sec
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
enumbool.c:1:34: Member of boolean enumerated type definition does not match
name set to represent TRUE or FALSE: false
enumbool.c:1:34: Member of boolean enumerated type definition does not match
name set to represent TRUE or FALSE: true
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
extension.c:2:18: Parse Error: New function scope inside function. (For help on
parse errors, see lclint -help parseerrors.)
*** Cannot continue.
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
nestext.c: (in function f)
nestext.c:3:26: Declaration using extern inside function scope: int test(void)
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
sizeofarray.c:1:12: Function parameter x declared as manifest array (size
constant is meaningless)
sizeofarray.c:10:16: Return value type size_t does not match declared type int:
sizeof((a))
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
rex.c: (in function main)
rex.c:19:12: Only storage re.parent (type struct rx_hash *) derived from
(type struct rx_hash *) derived from variable declared in this scope is not
released (memory leak)
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
struct.c:13:6: Function main declared to return void, should return int
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
.PHONY: boolops bool boolenum break bstring decl enumbool extension modarray nestext offestof sizeofarray rex struct
-LCLINT = lclint
+SPLINT = splint
all: boolops bool boolenum break bstring decl enumbool extension modarray nestext offestof sizeofarray rex struct
boolops:
- $(LCLINT) boolops.c -expect 1
+ $(SPLINT) boolops.c -expect 1
bool:
- $(LCLINT) bool.lcl booldef.c -expect 1
+ $(SPLINT) bool.lcl booldef.c -expect 1
boolenum:
- $(LCLINT) boolenum.c -booltype BOOLEAN -expect 1
+ $(SPLINT) boolenum.c -booltype BOOLEAN -expect 1
break:
- $(LCLINT) break.c -expect 1
+ $(SPLINT) break.c -expect 1
bstring:
- $(LCLINT) bstring.c -expect 2
+ $(SPLINT) bstring.c -expect 2
decl:
- $(LCLINT) decl.c -expect 1
+ $(SPLINT) decl.c -expect 1
enumbool:
- $(LCLINT) enumbool.c -expect 2
- $(LCLINT) enumbool.c -booltrue "true" -boolfalse "false"
+ $(SPLINT) enumbool.c -expect 2
+ $(SPLINT) enumbool.c -booltrue "true" -boolfalse "false"
extension:
- -$(LCLINT) extension.c
- -$(LCLINT) -gnuextensions extension.c
+ -$(SPLINT) extension.c
+ -$(SPLINT) -gnuextensions extension.c
modarray:
- $(LCLINT) modarray.c
+ $(SPLINT) modarray.c
nestext:
- $(LCLINT) nestext.c -expect 1
+ $(SPLINT) nestext.c -expect 1
offsetof:
- $(LCLINT) offsetof.c
+ $(SPLINT) offsetof.c
sizeofarray:
- $(LCLINT) sizeofarray.c -expect 3
+ $(SPLINT) sizeofarray.c -expect 3
rex:
- $(LCLINT) rex.c -expect 4
+ $(SPLINT) rex.c -expect 4
### 3 new errors reported
struct:
- $(LCLINT) struct.c -expect 1
+ $(SPLINT) struct.c -expect 1
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
enumtest.c:1:9: Variable exported but not used outside enumtest: sig_func
enumtest.c:2:10: Variable exported but not used outside enumtest: sig_func1
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
duffs.c: (in function send)
duffs.c:7:8: Fall through case (no preceding break)
duffs.c:12:8: Fall through case (no preceding break)
duffs.c:13:8: Fall through case (no preceding break)
-Finished LCLint checking --- 7 code errors found, as expected
+Finished checking --- 7 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
bug2.c: (in function main)
bug2.c:6:8: Fall through case (no preceding break)
bug2.c:5:5: Statement after switch is not a case: printf("here 1")
bug2.c:20:2: Path with no return in function declared to return int
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
bug3.c: (in function main)
bug3.c:8:8: Fall through case (no preceding break)
bug3.c:12:21: Variable j used before definition
bug3.c:13:2: Path with no return in function declared to return int
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
hexconstants.c: (in function f)
hexconstants.c:5:10: Return value type unsigned int does not match declared
type int: m1 + m2
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
hexconstants.c: (in function f)
hexconstants.c:2:21: Variable m1 initialized to type int, expects unsigned int:
hexconstants.c:1:5: Function f exported but not declared in header file
hexconstants.c:6:1: Definition of f
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
innercomment.c:1:17: Comment starts inside comment
innercomment.c:16:3: Comment starts inside comment
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
offsetof.c: (in function f)
offsetof.c:10:3: Assignment of size_t to int: m = offsetof(S,u)
offsetof.c:12:26: Deep field k in offsetof is not the name of a field of struct
{ int m; }: offsetof(S,u.s.k)
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
error.c:5:9: Variable x initialized to type char, expects int: 'a'
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
ulrich.c: (in function utl_calloc)
ulrich.c:14:13: Possibly null storage newblock returned as non-null: newblock
ulrich.c:12:16: Storage newblock may become null
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
cpptest.c: (in function test)
cpptest.c:2:11: Variable x initialized to type char, expects int: 'a'
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
longlong.c: (in function llf)
longlong.c:2:11: Variable m initialized to type long long, expects int: llx
longlong.c:6:3: Assignment of long long to long int: lx = 5234LL
longlong.c:9:3: Assignment of long long to long int: lx = llx
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
alignof.c: (in function f)
alignof.c:2:23: Variable m initialized to type size_t, expects int: alignof(x)
alignof.c:3:23: Variable n initialized to type size_t, expects int:
alignof((x))
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
Spec file not found: DBL_MANT_DIG=25.lcl
Command Line: Malformed option `-D'
Cannot open file: DBL_MANT_DIG=25.c
Cannot open file: source.c
-Finished LCLint checking --- no code processed
+Finished checking --- no code processed
.PHONY: emptycase enumtest duffs bitfields bugs tests hexconstants innercomment nothing offsetof komazi print syslog error ulrich cpptest longlong subdir fink driverstub alignof source emptycase enumtest duffs bitfields bugs tests hexconstants innercomment nothing offsetof komazi print syslog error ulrich cpptest longlong subdir fink driverstub alignof source
-LCLINT = lclint
+SPLINT = splint
all: check
check: emptycase enumtest duffs bitfields bugs tests hexconstants innercomment nothing offsetof komazi print syslog error ulrich cpptest longlong subdir fink driverstub alignof source emptycase enumtest duffs bitfields bugs tests hexconstants innercomment nothing offsetof komazi print syslog error ulrich cpptest longlong subdir fink driverstub alignof source
emptycase:
- $(LCLINT) emptycase.c
+ $(SPLINT) emptycase.c
enumtest:
- $(LCLINT) enumtest.c -expect 2
+ $(SPLINT) enumtest.c -expect 2
duffs:
- $(LCLINT) duffs.c -expect 7
+ $(SPLINT) duffs.c -expect 7
bitfields:
- $(LCLINT) bitfields.c
+ $(SPLINT) bitfields.c
bugs:
- $(LCLINT) bug1.c
- $(LCLINT) bug2.c -expect 5
- $(LCLINT) bug3.c -expect 3
+ $(SPLINT) bug1.c
+ $(SPLINT) bug2.c -expect 5
+ $(SPLINT) bug3.c -expect 3
tests:
- $(LCLINT) test0.c
- $(LCLINT) test1.c
- $(LCLINT) test2.c
+ $(SPLINT) test0.c
+ $(SPLINT) test1.c
+ $(SPLINT) test2.c
hexconstants:
- $(LCLINT) hexconstants.c -expect 1
- $(LCLINT) +checks hexconstants.c -expect 4
+ $(SPLINT) hexconstants.c -expect 1
+ $(SPLINT) +checks hexconstants.c -expect 4
innercomment:
- $(LCLINT) innercomment.c -expect 2 +forcehints
- $(LCLINT) innercomment.c -nestcomment
+ $(SPLINT) innercomment.c -expect 2 +forcehints
+ $(SPLINT) innercomment.c -nestcomment
nothing:
- $(LCLINT) nothing.c
+ $(SPLINT) nothing.c
offsetof:
- $(LCLINT) offsetof.c -expect 2
+ $(SPLINT) offsetof.c -expect 2
komazi:
- $(LCLINT) komazi.c
+ $(SPLINT) komazi.c
print:
- $(LCLINT) print.c
+ $(SPLINT) print.c
syslog:
- $(LCLINT) syslog.c -warnunixlib +unixlib
+ $(SPLINT) syslog.c -warnunixlib +unixlib
error:
- $(LCLINT) error.c -expect 1
+ $(SPLINT) error.c -expect 1
ulrich:
- $(LCLINT) ulrich.c -expect 1
+ $(SPLINT) ulrich.c -expect 1
cpptest:
- $(LCLINT) cpptest.c '-D__P(x)=x' -expect 1
+ $(SPLINT) cpptest.c '-D__P(x)=x' -expect 1
longlong:
- $(LCLINT) longlong.c -expect 4
+ $(SPLINT) longlong.c -expect 4
subdir:
- $(LCLINT) subdir/main.c subdir/main.lcl
+ $(SPLINT) subdir/main.c subdir/main.lcl
fink:
- $(LCLINT) fink.c
+ $(SPLINT) fink.c
driverstub:
- $(LCLINT) driverstub.c
+ $(SPLINT) driverstub.c
alignof:
- $(LCLINT) alignof.c -expect 2
+ $(SPLINT) alignof.c -expect 2
source:
- $(LCLINT) -D DBL_MANT_DIG=25 source.c
+ $(SPLINT) -D DBL_MANT_DIG=25 source.c
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
boolt.c: (in function test)
boolt.c:7:16: Function test expects arg 1 to be pan_bool_t gets int: 2
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
uconstants.c: (in function f)
uconstants.c:2:16: Variable x0 declared but not used
uconstants.c:3:21: Variable x1 declared but not used
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
hoof.c: (in function main)
hoof.c:12:16: Function init_arr expects arg 2 to be long int * gets int *: &j
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
booltest.c: (in function f)
booltest.c:9:12: Return value type int does not match declared type bool: i
booltest.c:8:7: Test expression for if not bool, type int: i
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
booltest.c: (in function f)
booltest.c:9:12: Return value type int does not match declared type bool: i
-Finished LCLint checking --- 1 code error found, as expected
+Finished checking --- 1 code warning, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
immutable.c: (in function immutable_create)
immutable.c:7:6: Arrow access from possibly null pointer res: res->x
immutable.c:8:10: Fresh storage returned as unqualified (should be only): res
immutable.c:5:54: Fresh storage res allocated
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
impabsmodule.c: (in function isTwo)
impabsmodule.c:10:7: Variable var used before definition
impabsmodule.c:10:12: Variable var2 used before definition
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
.PHONY: boolt testalt booltest boolbad hoof testalt uconstants ull baz
-LCLINT = lclint
+SPLINT = splint
# ull and baz added after 2.5q
all: testalt boolt uconstants badcomment hoof boolbad booltest ull baz immutable impabsmodule
testalt:
- ${LCLINT} -dump newlint.lcd testalt.c
+ ${SPLINT} -dump newlint.lcd testalt.c
boolt:
- ${LCLINT} -expect 1 +partial +booltype pan_bool_t +booltrue PAN_TRUE +boolfalse PAN_FALSE boolt.c
+ ${SPLINT} -expect 1 +partial +booltype pan_bool_t +booltrue PAN_TRUE +boolfalse PAN_FALSE boolt.c
uconstants:
- ${LCLINT} uconstants.c -expect 2
+ ${SPLINT} uconstants.c -expect 2
badcomment:
- ${LCLINT} badcomment.c -expect 3
+ ${SPLINT} badcomment.c -expect 3
hoof:
- ${LCLINT} hoof.c -expect 1
- ${LCLINT} hoof.c +ignorequals
+ ${SPLINT} hoof.c -expect 1
+ ${SPLINT} hoof.c +ignorequals
ignorecmd:
- ${LCLINT} +ignorecommand -we
+ ${SPLINT} +ignorecommand -we
booltest:
- ${LCLINT} booltest.c -booltype bool -expect 2
- ${LCLINT} booltest.c -booltype bool +boolint
- ${LCLINT} booltest.c -booltype bool -predboolint -expect 1
+ ${SPLINT} booltest.c -booltype bool -expect 2
+ ${SPLINT} booltest.c -booltype bool +boolint
+ ${SPLINT} booltest.c -booltype bool -predboolint -expect 1
boolbad:
- ${LCLINT} -weak -booltype BOOLEAN boolbad.c
+ ${SPLINT} -weak -booltype BOOLEAN boolbad.c
ull:
- ${LCLINT} ull.c
+ ${SPLINT} ull.c
baz:
- ${LCLINT} baz.h bimbim.h -I.
+ ${SPLINT} baz.h bimbim.h -I.
immutable:
- ${LCLINT} immutable.c testimmutable.c -expect 2
+ ${SPLINT} immutable.c testimmutable.c -expect 2
impabsmodule:
- ${LCLINT} +impabstract impabsmodule.c -expect 2
+ ${SPLINT} +impabstract impabsmodule.c -expect 2
-;;LCLint Dump: newlint.lcd
-;;LCLint 3.0.0.19 --- 5 October 2001
+;;; Splint Library newlint.lcd
+;;Splint 3.0.0.20 --- 5 October 2001
;;lib:169
;;ctTable
0 u-2 19 38
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
typequals.c:6:4: Operand of * is abstract type (tam): *xtam
typequals.c:7:4: Operand of * is abstract type (tai): *xtai
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
typequals.c: (in function f)
typequals.c:6:4: Operand of * is abstract type (tam): *xtam
typequals.c:7:4: Operand of * is abstract type (tai): *xtai
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
ud.c:50:6: Variable z5 used before definition
ud.c:56:7: Variable z5 used before definition
-Finished LCLint checking --- 9 code errors found, as expected
+Finished checking --- 9 code warnings, as expected
ud2.c: (in function g)
ud2.c:9:6: Unallocated storage y passed as out parameter to f1: y
ud2.c:20:7: Passed storage &x not completely defined: f2 (&x)
ud2.c:23:7: Variable y used before definition
-Finished LCLint checking --- 3 code errors found, as expected
+Finished checking --- 3 code warnings, as expected
-%PASSED Output from LCLint 3.0.0.19
+%PASSED Output from Splint 3.0.0.20
%LCLimports
%LCLSortTable
%LCLsort bool immutable nil nil
| (src[5] ^ 0x80)
ullint.c:37:3: Assignment of unsigned char to pan_uint32_t: d = c
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
ullint.c: (in function main)
ullint.c:29:11: Operands of < have incompatible types (int, size_t):
i < sizeof((src))
ullint.c:35:26: Array element src[0] used before definition
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
ulstypes.c:20:19: Variable x3 initialized to type int, expects unsigned int:
-15
-Finished LCLint checking --- 8 code errors found, as expected
+Finished checking --- 8 code warnings, as expected
-Finished LCLint checking --- no code errors found
+Finished checking --- no warnings
ulstypes.c:3:23: Contradictory long and short type qualifiers
ulstypes.c: (in function f)
ulstypes.c:5:10: Function exported but not used outside ulstypes: f
ulstypes.c:16:1: Definition of f
-Finished LCLint checking --- 28 code errors found, as expected
+Finished checking --- 28 code warnings, as expected
point
union.c:82:9: Storage u->st.ip is released
-Finished LCLint checking --- 8 code errors found, as expected
+Finished checking --- 8 code warnings, as expected
unreachable.c:34:10: Fall through case (no preceding break)
unreachable.c:45:4: Unreachable code: z++
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
unreachable.c: (in function s)
unreachable.c:34:10: Fall through case (no preceding break)
unreachable.c:46:2: Path with no return in function declared to return int
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected
switch.c: (in function f3)
switch.c:31:2: Path with no return in function declared to return int
switch.c: (in function f6)
switch.c:70:2: Path with no return in function declared to return int
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
unsignedcompare.c:12:7: Comparison of unsigned value involving zero: res < 0
unsignedcompare.c:12:18: Comparison of unsigned value involving zero: res >= 0
-Finished LCLint checking --- 4 code errors found, as expected
+Finished checking --- 4 code warnings, as expected
unused.c:16:12: Function undef declared but not defined
unused.c:16:12: Function undef exported but not declared in header file
-Finished LCLint checking --- 5 code errors found, as expected
+Finished checking --- 5 code warnings, as expected
unused.c:13:6: Name _inner is in the implementation name space (any identifier
beginning with underscore)
unused.c:7:7: Field dumb of structure struct _st declared but not used
unused.c:16:12: Function undef exported but not declared in header file
-Finished LCLint checking --- 8 code errors found, as expected
+Finished checking --- 8 code warnings, as expected
void.c:3:5: Function exported but not used outside void: f
void.c:7:1: Definition of f
-Finished LCLint checking --- 2 code errors found, as expected
+Finished checking --- 2 code warnings, as expected