1## This file currently uses GNU Make features; those should really be replaced
2## by configure-time handling.
3
4AUTOMAKE_OPTIONS = 1.5 foreign
5
6## Use this to configure diff output
7DIFFFLAGS =
8
9# -u show context
10
11#drl 3/27/2002 get the test suit to print a warning when splint is built under /usr/
12
13
14## Set up the splint commands
15
16#SPLINT    =  valgrind --leak-resolution=high --num-callers=20 --show-reachable=no --leak-check=no $(top_builddir)/src/splint$(EXEEXT)
17SPLINT    =  $(top_builddir)/src/splint$(EXEEXT)
18
19### These are shell-specific
20## unexport LARCH_PATH
21## unexport LCLIMPORTDIR
22
23### This is horrible!  Can't we make top_builddir absolute?
24#SPLINTNEST = valgrind --leak-resolution=high --num-callers=20 --show-reachable=no --leak-check=no ../$(top_builddir)/src/splint$(EXEEXT)
25SPLINTNEST = ../$(top_builddir)/src/splint$(EXEEXT)
26SPLINTPNEST = @$(SPLINTNEST) -nof
27SPLINTP   = @$(SPLINT) -nof
28
29# Make sure .splintrc files are not used so test results do not
30# depend on local settings.
31SPLINTRN  = $(SPLINTP) -hints -booltype "bool"
32SPLINTR   = $(SPLINTRN) -exportlocal +debugfcnconstraint
33
34SPLINTRNNEST  = $(SPLINTPNEST) -hints -booltype "bool"
35SPLINTRNEST   = $(SPLINTRNNEST) -exportlocal +debugfcnconstraint
36
37###
38### rcfiles not included becuase file names will not match exactly
39###
40
41UNITTESTS = \
42  help \
43  abstptr abstract alias alttypes ansireserved argorder \
44  args arraydims arrayinit arraylit blocks break cases cast chararraylit charlit clauses commentchar compdestroy \
45  compoundliterals compoundstmt condifomit constannot controldepth csyntax czechnames czechoslovaknames deadparam \
46  decl divzero enum enumtag exports external fields flags forbody format freearray \
47  funcpointer functionmacro glob globals impabstract info init innerarray inparam internal iter keep libs \
48  linked lintcomments list longint loopexec looptesteffect \
49  macros macrosef malloc merge mergenull modifies modtest moduncon \
50  mongoincludes mystrncat noeffect null nullret nullassign numabstract observer oldstyle outglob outparam \
51  parentype postnotnull preds prefixes printflike rc refcounts release repexpose \
52  returned russian sharing shifts sizesigns slovaknames \
53  specclauses \
54  special stack staticarray strings \
55  stringliteral \
56  structassign typequals typeof ud ulstypes union unioninit \
57  unnamedsu unreachable unsignedcompare \
58  unused ullint utypes void widestrings
59UNITEXPECTS = $(addsuffix .expect, $(UNITTESTS))
60
61SUBDIRTESTS = metastate mergestate tainted fileio \
62   simplebufferConstraintTests moreBufferTests moreBufferTests2 globalbufferannotation \
63   maxset strchr sizeoftest for manual
64
65### warnuse doesn't work yet!
66SUBDIRTESTS += tests2.2
67SUBDIRTESTS += tests2.4
68SUBDIRTESTS += tests2.5
69SUBDIRTESTS += db1 db2 db3
70
71SPLINTTESTS = $(UNITTESTS) $(SUBDIRTESTS)
72
73QUICKTESTS = db3
74
75.PHONY: all check
76all check: fulltest
77
78.PHONY: version
79version:
80	-$(SPLINT) -help version
81
82.PHONY: help
83
84help:
85	-@$(SPLINT)
86	-@$(SPLINT) -help
87	-@$(SPLINTP) -asdf
88	-@$(SPLINTP) +boolint +boolint
89	-@$(SPLINT) -help flags alpha
90
91#commenting these out for the release because they will almost always fail
92#since the default will only fit one system
93#Don't want to panic the user...
94#	-@$(SPLINT) -help flags all     | $(GREP) -v "^larchpath <path> "     | $(GREP) -v "^lclimportdir <directory> " | $(GREP) -v "  Path argument.  Default: " |  $(GREP) -v "  Directory argument.  Default: " | $(GREP) -v "  lclimportdir <directory> "
95#	-@$(SPLINT) -help flags full    | $(GREP) -v "^larchpath <path> "     | $(GREP) -v "^lclimportdir <directory> " | $(GREP) -v "  Path argument.  Default: " |  $(GREP) -v "  Directory argument.  Default: " | $(GREP) -v "  lclimportdir <directory> "
96#	-@$(SPLINT) -help flags manual     | $(GREP) -v "^larchpath <path> "   | $(GREP) -v "^lclimportdir <directory> " | $(GREP) -v "  Path argument.  Default: " |  $(GREP) -v "  Directory argument.  Default: " | $(GREP) -v "  lclimportdir <directory> "
97
98#larch and lclimportdir have different hardcoded default paths so don't include the path in the output..
99
100
101.PHONY: clean-local
102clean-local:
103	-rm -f *~ #*# *.o *.lcs a.out
104	-rm -f *.out
105	-rm  *.lcd *.lh
106	-cd db1; $(MAKE) clean
107	-cd db2; $(MAKE) clean
108	-cd db3; $(MAKE) clean
109
110## All tests need splint to be built
111
112$(SPLINTTESTS): $(SPLINT)
113
114$(SPLINT):
115	cd $(top_builddir)/src; $(MAKE)
116
117## This is a kludgey way of processing the output to make it match exactly
118## The last matcher is the most annoying, as it can differ (the first two are
119##  pretty much fixed); usually, you'll have 'make[1]:', but on DOS it is
120##  'make.exe[1]:' (it might even be 'c:/path/to/make.exe[1]:', but that's
121##  not supported).
122## The tests should really be re-done as shell-scripts or something... maybe
123##  autotest could be used once it's finished.
124
125CLEANOUTPUT = $(GREP) -v "Splint 3." | $(GREP) -v "$(SPLINT)" | $(GREP) -v "^make.*\[[1-9]*\]:" | $(GREP) -v "^gmake.*\[[1-9]*\]:" |   $(GREP) -v "^gmake -e" |  $(GREP) -v "^make -e" |$(GREP) -v "config.status: creating test/Makefile" | $(GREP) -v "cd .. && " | $(GREP) -v "CONFIG_HEADERS=" | $(GREP) -v "CONFIG_FILES="
126
127#drl 12/07/2002 These rules for .c and .expect files don't make sense
128# and they are confusing make dist so I'm taking them out.
129
130## Not real C code
131
132#.c.expect:
133#	$(MAKE) $* |& $(CLEANOUTPUT) >$*.expect && cat $*.expect
134#
135#.c.diff:
136#	$(MAKE) $* |& $(CLEANOUTPUT) >$*.out && diff $*.expect $*.out
137
138
139#drl temporally take this out.
140#.PHONY: expects
141#expects:
142#	@echo "Saving old expects..."; \
143#	 cat *.expect >expects-`date +"%y-%m-%d-%H"`
144#	@for TEST in $(UNITTESTS) $(INTEGTESTS); do \
145#	   echo "Making $$TEST.expect..."; \
146#	   $(MAKE) $$TEST 2>&1 | $(CLEANOUTPUT) >$$TEST.expect; \
147#	   cat $$TEST.expect; \
148#	 done
149
150CheckSystemDir = (pwd | grep -q  "/usr" && echo "Warning tests which not run correctly when splint is built in /usr or a subdirectory under /usr.  Build splint in a different directory or disregard test failures." )
151
152.PHONY: quicktest
153quicktest:
154	$(CheckSystemDir)
155	@for TEST in $(QUICKTESTS); do \
156	   echo "Checking $$TEST..."; \
157	   $(MAKE) $$TEST 2>&1 | $(CLEANOUTPUT) >$$TEST.out && \
158	     $(DIFF) $(DIFFFLAGS) $$TEST.expect $$TEST.out || \
159               echo "*** FAIL ***"; \
160	 done
161
162.PHONY: fulltest
163fulltest:
164	@echo "Testing $(PACKAGE) $(VERSION)..."
165	@echo
166	@echo "Version Info:"
167	@$(SPLINT) -help version
168	@$(SPLINT) -help vars
169	@echo ""
170	@echo "Tests:"
171	@echo ""
172	@for TEST in $(SPLINTTESTS); do \
173	   echo "Checking $$TEST..."; \
174	   $(MAKE) $$TEST 2>&1 | $(CLEANOUTPUT) >$$TEST.out && \
175	     $(DIFF) $(DIFFFLAGS) $$TEST.expect $$TEST.out || \
176               echo "*** FAIL ***"; \
177	 done
178
179### Rules for tests start here
180
181.PHONY: abstptr
182abstptr:
183	-$(SPLINTR) abstptr -expect 9
184	-$(SPLINTR) abstptr +voidabstract -expect 6
185
186.PHONY: abstract
187abstract:
188	-$(SPLINTR) abst_t.lcl commentcmd.c -expect 15
189
190.PHONY: alias
191alias:
192	-$(SPLINTR) +lh mut
193	-$(SPLINTR) mut alias +globalias -expect 19
194	-$(SPLINTR) mut alias2 +globalias -expect 17
195	-$(SPLINTR) +lh alias3 -expect 14
196	-$(SPLINTR) +lh alias4 +boolint
197	-$(SPLINTR) alias4 -pred +retalias -expect 6
198	-$(SPLINTR) +lh alias5 +memchecks -null -specundef -expect 5
199
200.PHONY: alttypes
201alttypes:
202	-$(SPLINTR) alttypes.c -expect 2
203
204###
205### evans 2001-06-07 - updated nameCheck.c to reflect C9X.
206### Reports one new errors for ansireserved.c - wctomb is bad even as a local
207###    variable (could be a macro?)
208### Reports 3 additional errors for +checks; no longer suppresses name errors
209###    in the presense of other errors.
210###
211
212.PHONY: ansireserved
213ansireserved:
214	-$(SPLINTR) ansireserved.c +ansireserved -nolib -expect 9
215	-$(SPLINTR) ansireserved.c +ansireserved +ansireservedlocal -nolib -expect 11
216	-$(SPLINTRN) ansireserved.c +checks -exportlocal -exportheadervar -exportheader -expect 12
217	-$(SPLINTR) ansireserved2.c +ansireserved -expect 1
218
219.PHONY: argorder
220argorder:
221	-$(SPLINTR) argorder.c -expect 4
222	-$(SPLINTR) argorder2  -expect 5
223	-$(SPLINTR) argorder3.c -expect 8
224	-$(SPLINTR) argorder4 -expect 9
225	-$(SPLINTR) argorder4 -evalorder -expect 1
226	-$(SPLINTR) argorder5.c +evalorderuncon -expect 3
227
228.PHONY: args
229args:
230	-$(SPLINTR) args -noeffect -expect 12
231
232.PHONY: arraydims
233arraydims:
234	-$(SPLINTR) arraydims.c -varuse -expect 2
235	-$(SPLINTR) arraydims.c -initsize -varuse
236
237.PHONY: arrayinit
238arrayinit:
239	-$(SPLINTR) arrayinit.c -expect 9
240
241.PHONY: arraylit
242arraylit:
243	-$(SPLINTR) arraylit.c -expect 2
244	-$(SPLINTR) arraylit.c +stringliteralsmaller -expect 4
245
246.PHONY: blocks
247blocks:
248	-$(SPLINTR) blocks.c -expect 4
249	-$(SPLINTR) blocks.c +ifblock +elseifcomplete -expect 7
250	-$(SPLINTR) blocks.c -ifempty +whileempty +whileblock -expect 3
251	-$(SPLINTR) blocks.c -ifempty +forempty +forblock -expect 3
252	-$(SPLINTR) blocks.c +allempty -expect 6
253	-$(SPLINTRN) blocks.c +strict -exportlocal +partial -exportheader -expect 11
254
255.PHONY: break
256break:
257	-$(SPLINTR) break.c -expect 4
258	-$(SPLINTR) break.c +deepbreak -expect 6
259	-$(SPLINTR) break.c +deepbreak -looploopbreak -expect 5
260
261.PHONY: cases
262cases:
263	-$(SPLINTR) cases.c -expect 5
264	-$(SPLINTR) cases2.c -expect 2
265	-$(SPLINTRN) cases2.c +checks -exportlocal -exportheader -expect 3
266	-$(SPLINTRN) cases2.c +checks -exportlocal -exportheader -branchstate -expect 3
267
268.PHONY: cast
269cast:
270	-$(SPLINTR) cast -accessmodule -expect 20
271	-$(SPLINTRN) cast2.c +checks -exportlocal -exportheader -expect 3
272
273.PHONY: chararraylit
274chararraylit:
275	-$(SPLINTR) chararraylit.c -expect 2
276
277### Two addition errors detected with 2.5 with -numliteral.
278
279### evans 2002-12-15: finds one more but in charlit
280.PHONY: charlit
281charlit:
282	-$(SPLINTR) +hints charlit.c -expect 4
283	-$(SPLINTR) +hints -numliteral charlit.c -expect 6
284	-$(SPLINTR) +hints charlit.c +charintliteral +ignoresigns -expect 1
285
286.PHONY: clauses
287clauses:
288	-$(SPLINTR) clauses.c +memchecks -expect 4
289	-$(SPLINTR) clauses2.c +memchecks
290	-$(SPLINTR) clauses3.c +memchecks -expect 2
291	-$(SPLINTR) clauses3.c +memchecks +unixlib -expect 3
292
293.PHONY: commentchar
294commentchar:
295	-$(SPLINTR) commentchar.c -expect 4
296	-$(SPLINTR) -commentchar '#' commentchar.c -expect 4
297
298.PHONY: controldepth
299controldepth:
300	-$(SPLINTR) +hints -controlnestdepth 2 controldepth.c -expect 2
301	-$(SPLINTR) +hints -controlnestdepth 1 controldepth.c -expect 2
302
303###
304### 1 extra warning reported for +strict now because of out-of-bounds read
305###
306
307.PHONY: compdestroy
308compdestroy:
309	-$(SPLINTRN) compdestroy.c +checks -exportlocal -exportheader -expect 1
310	-$(SPLINTRN) compdestroy.c +checks -exportlocal -exportheader +strictdestroy -expect 2
311	-$(SPLINTRN) compdestroy.c +checks -exportlocal -exportheader +strictdestroy +strictusereleased -expect 3
312	-$(SPLINTRN) compdestroy.c +strict +partial -exportheader -expect 4
313
314.PHONY: compoundliterals
315compoundliterals:
316	${SPLINTRN} compoundliterals.c
317
318.PHONY: compoundstmt
319compoundstmt:
320	${SPLINTRN} compoundstmt.c -expect 3
321
322.PHONY: condifomit
323condifomit:
324	${SPLINTRN} -gnuextensions condifomit.c -expect 4
325	${SPLINTRN} +gnuextensions condifomit.c -expect 1
326
327.PHONY: constannot
328constannot:
329	${SPLINTRN} constannot.c +boundswrite -exportlocal -expect 2
330
331.PHONY: csyntax
332csyntax:
333	-$(SPLINTR) +quiet -incondefs csyntax.c -expect 1
334	-$(SPLINTR) +quiet csyntax2.c -expect 2
335	-$(SPLINTR) +quiet csyntax3.c -expect 1
336	-$(SPLINTR) +quiet -incondefs csyntax4.c
337	-$(SPLINTR) +quiet csyntax5.c
338	-$(SPLINTR) +quiet csyntax6.c
339	-$(SPLINTR) +quiet csyntax7.c
340	-$(SPLINTR) +quiet csyntax8.c
341	-$(SPLINTR) +quiet csyntax9.c
342	-$(SPLINTR) +quiet csyntax10.c
343	-$(SPLINTR) +quiet csyntax11.c
344	-$(SPLINTR) +quiet csyntax12.c
345	-$(SPLINTR) +quiet csyntax13.c -expect 1
346	-$(SPLINTR) +quiet csyntax14.c
347	-$(SPLINTR) +quiet csyntax15.c
348	-$(SPLINTR) +quiet csyntax16.c -expect 2
349	-$(SPLINTR) +quiet csyntax17.c -expect 3
350
351.PHONY: czechnames
352czechnames:
353	-$(SPLINTR) czechnames.c
354	-$(SPLINTR) +hints +czech czechnames.c -expect 2
355	-$(SPLINTR) +hints +czech -czechvars czechnames.c -expect 1
356	-$(SPLINTR) +hints +czech -accessczech czechnames.c -expect 6
357
358.PHONY: czechoslovaknames
359czechoslovaknames:
360	-$(SPLINTR) +hints +czechoslovak czechnames.c -expect 1
361	-$(SPLINTR) +hints +czechoslovak slovaknames.c -expect 1
362	-$(SPLINTR) +hints +czechoslovak +slovakvars slovaknames.c -expect 2
363
364###
365### deadparam added 2001-05-27
366###
367
368.PHONY: deadparam
369deadparam:
370	${SPLINTR} deadparam.c -expect 3
371
372#
373# Was expect 3 before 2.4.  Earlier versions did not handle implicit
374# function pointers correctly.
375#
376
377.PHONY: decl
378decl:
379	-$(SPLINTR) decl.c -expect 2
380	-$(SPLINTRN) decl.c +strict -exportlocal -expect 6
381	-$(SPLINTR) decl2 -expect 4
382
383.PHONY: divzero
384divzero:
385	-$(SPLINTR) divzero.c -varuse -expect 0
386
387.PHONY: enum
388enum:
389	-$(SPLINTR) enum -expect 16
390	-$(SPLINTR) enum -misscase -expect 14
391
392.PHONY: enumtag
393enumtag:
394	-$(SPLINTR) enumtag.c -expect 2
395
396.PHONY: exports
397exports:
398	-$(SPLINTR) exports.c +exporttype +exportvar +exportfcn +topuse +typeuse -expect 6
399	-$(SPLINTR) exports.c +exportany -expect 3
400	-$(SPLINTR) exports.c
401
402.PHONY: external
403external:
404	-$(SPLINTR) external.c +partial
405	-$(SPLINTR) external.c +partial +distinctexternalnames +ansi89limits -expect 2
406	-$(SPLINTR) external.c -nolib +partial -externalnamelength 3 -expect 3
407	-$(SPLINTR) external.c -nolib +partial -externalnamelength 3 +externalnamecaseinsensitive -expect 3
408	-$(SPLINTR) external.c +partial -externalnamelength 3 -expect 4
409
410.PHONY: fields
411fields:
412	-$(SPLINTR) fields.c +memchecks -expect 6
413	-$(SPLINTR) fields2.c +memchecks -expect 5
414	-$(SPLINTR) fields3.c +memchecks
415
416.PHONY: flags
417flags:
418	-$(SPLINTR) flags.c -expect 8
419	-$(SPLINTR) +nocomments flags.c -expect 2
420
421### Added 2001-06-02
422
423.PHONY: forbody
424forbody:
425	${SPLINTR} forbody.c -expect 2
426
427### Added 2001-06-03
428.PHONY: format
429format:
430	${SPLINTR} format.c -expect 3
431	${SPLINTR} format.c -formatconst
432
433# two new errors (invalid lhs)
434
435.PHONY: funcpointer
436funcpointer:
437	-$(SPLINTR) +memchecks +noparams funcpointer.c -expect 18
438
439.PHONY: functionmacro
440functionmacro:
441	-$(SPLINTR) functionmacro.c -expect 2
442
443.PHONY: glob
444glob:
445	-$(SPLINTR) glob -expect 4
446	-$(SPLINTR) glob -globuse -expect 3
447	-$(SPLINTR) glob +globunspec -expect 6
448
449.PHONY: globals
450globals:
451	-$(SPLINTR) -modifies globals.c -expect 5
452	-$(SPLINTR) -modifies globals.c +allglobals -expect 6
453	-$(SPLINTR) -modifies globals.c +impcheckedglobals -expect 6
454	-$(SPLINTR) -modifies globals.c -globals -checkstrictglobals -expect 2
455	-$(SPLINTR) -modifies globals.c +globunspec -expect 6
456	-$(SPLINTR) -modifies globals.c +globunspec +allglobals -expect 8
457
458# Was -accessfile
459.PHONY: impabstract
460impabstract:
461	-$(SPLINTR) -accessmodule impabstract.c
462	-$(SPLINTR) -accessmodule +hints +impabstract impabstract.c -expect 2
463	-$(SPLINTR) -accessmodule +hints +impabstract impabstract -expect 4
464
465###
466### evans 2001-12-30: Handle unrecognized pre-processor directives
467###    (Reported by Pierluigi Sanzani)
468
469.PHONY: info
470info:
471	${SPLINTR} info.c -expect 4
472
473### evans 2001-10-14: Expected errors updated
474.PHONY: init
475init:
476	-$(SPLINTR) init.c -expect 14
477	-$(SPLINTRN) init.c +checks -exportlocal -exportheadervar -expect 17
478
479### evans 2003-09-16
480.PHONY: innerarray
481innerarray:
482	-$(SPLINTR) innerarray.c -expect 10
483
484
485
486.PHONY: inparam
487inparam:
488	-$(SPLINTR) inparam.c -expect 2
489	-$(SPLINTR) +impouts inparam.c -expect 1
490
491.PHONY: internal
492internal:
493	-$(SPLINTR) internal.c -expect 1
494	-$(SPLINTR) internal.c +distinctinternalnames -expect 1
495	-$(SPLINTR) internal.c +distinctinternalnames +ansi89limits -expect 2
496	-$(SPLINTR) internal.c -internalnamelen 28 -expect 3
497	-$(SPLINTR) internal.c +internalnamecaseinsensitive -expect 3
498	-$(SPLINTR) internal.c +internalnamecaseinsensitive +internalnamelookalike -expect 11
499
500###
501### iter
502### 2001-06-06: Error message for iter.lcl:3,6 fixed to iter.lcl:3:6
503###
504
505.PHONY: iter
506iter:
507	-$(SPLINTR) iter -expect 14 -lclexpect 1
508	-$(SPLINTR) iter2.c -expect 12
509
510.PHONY: keep
511keep:
512	-$(SPLINTR) keep.c +memchecks -expect 6
513
514### libs
515### 2001-05-22: 2 new errors found (fixed spec of signal)
516### 2001-05-30: 3 new errors found (formatconst)
517### 2002-07-08: 2 new errors found (getc modifies errno)
518
519.PHONY: libs
520libs:
521	-$(SPLINTR) libs.c +longunsignedunsignedintegral -expect 18
522	-$(SPLINTR) libs.c -expect 22
523	-$(SPLINTR) libs.c +globunspec +modunspec -expect 25
524	-$(SPLINTR) libs.c +strictlib +globunspec +modunspec -expect 44
525
526.PHONY: lintcomments
527lintcomments:
528	-$(SPLINTR) lintcomments.c -expect 5
529	-$(SPLINTR) lintcomments.c -warnlintcomments -expect 1
530	-$(SPLINTR) lintcomments.c -lintcomments -expect 4
531
532.PHONY: list
533list:
534	-$(SPLINTR) list.c -expect 3
535
536###
537### 2002-12-12: Added test case for +longint and +shortint flags
538###
539
540.PHONY: longint
541longint:
542	-$(SPLINTR) longint.c -expect 3
543	-$(SPLINTR) longint.c +longint -expect 2
544	-$(SPLINTR) longint.c +shortint -expect 2
545	-$(SPLINTR) longint.c +shortint +longint -expect 0
546
547###
548### 2002-01-01: Added test case for obvious loop execution.
549###
550
551.PHONY: loopexec
552loopexec:
553	-$(SPLINTR) loopexec.c -expect 1
554	-$(SPLINTR) loopexec.c -obviousloopexec -expect 3
555
556.PHONY: looptesteffect
557looptesteffect:
558	-$(SPLINTR) looptesteffect.c -expect 1
559
560.PHONY: macros
561macros:
562	-$(SPLINTR) macros -expect 17
563	-$(SPLINTR) macros.c +allmacros -expect 34
564	-$(SPLINTR) macros.c +fcnmacros -expect 31
565
566
567.PHONY: macrosef
568macrosef:
569	-$(SPLINTR) macrosef -expect 4
570	-$(SPLINTR) macrosef.c +allmacros -expect 3
571	-$(SPLINTR) macrosef.c +allmacros +sefuncon -expect 4
572
573.PHONY: malloc
574malloc:
575	-$(SPLINTRN) malloc.c +bounds -exportlocal -expect 7
576
577.PHONY: merge
578merge:
579	-$(SPLINTRN) merge.c +checks -exportlocal -exportheadervar -exportheader -expect 3
580
581.PHONY: mergenull
582mergenull:
583	-$(SPLINTRN) mergenull.c
584
585.PHONY: modifies
586modifies:
587	-$(SPLINTR) modifies.c modclient.c +impcheckedstatics +mustmod -expect 7
588
589.PHONY: modtest
590modtest:
591	-$(SPLINTR) modtest -expect 10
592	-$(SPLINTR) modtest +modunspec -expect 13
593	-$(SPLINTR) modtest +mustmod -expect 14
594
595.PHONY: moduncon
596moduncon:
597	-$(SPLINTR) moduncon.c +moduncon -memchecks -expect 4
598	-$(SPLINTRN) moduncon.c +strict +impboundsconstraints -exportlocal -expect 22
599
600.PHONY: mongoincludes
601mongoincludes:
602	-$(SPLINTR) mongoincludes.c -includenest 1 -expect 19
603	-$(SPLINTR) mongoincludes.c -includenest 2 -expect 10
604	-$(SPLINTR) mongoincludes.c -includenest 3 -expect 4
605	-$(SPLINTR) mongoincludes.c -includenest 4 -expect 1
606	-$(SPLINTR) mongoincludes.c -includenest 5 -expect 0
607
608.PHONY: mystrncat
609mystrncat:
610	-$(SPLINTR) mystrncat.c +boundsread +boundswrite -expect 4
611
612.PHONY: noeffect
613noeffect:
614	${SPLINTP} noeffect.c +allmacros +checks -expect 3
615
616###
617### 2002-01-01: null1.c: expect increased to 15 because out must be defined
618###                         checking detects one new error
619###
620
621.PHONY: null
622null:
623	-$(SPLINTR) null1.c -expect 15
624	-$(SPLINTR) null1.c -null -mustdefine -expect 4
625	-$(SPLINTR) null2.c -expect 11
626	-$(SPLINTR) null3.c -expect 15
627	-$(SPLINTR) null3.c +unixlib -expect 16
628	-$(SPLINTR) null4.c -expect 1
629	-$(SPLINTR) null5.c -expect 4
630	-$(SPLINTR) null6 -expect 4
631	-$(SPLINTR) +quiet null6.lcl -dump null6
632	-$(SPLINTR) null6.c -load null6 -expect 4
633
634### Added for 3.0 (bugs reported by Kevin Broady)
635
636.PHONY: nullret
637nullret:
638	-$(SPLINTR) nullret.c -expect 2
639	-$(SPLINTR) -nullret nullret.c -expect 0
640
641.PHONY: nullassign
642nullassign:
643	-$(SPLINTR) nullassign.c -expect 2
644	-$(SPLINTR) -nullassign nullassign.c -expect 1
645
646
647### Added for 3.1 - evans 2002-12-14
648
649.PHONY: numabstract
650numabstract:
651	-$(SPLINTR) numabstract.c -expect 11
652	-$(SPLINTR) numabstract.c +numabstractlit -expect 9
653	-$(SPLINTR) numabstract.c -numabstractcast -expect 10
654
655#
656# Before 2.4, expected one more because error was reported both as
657# dependent and observer.
658#
659
660.PHONY: observer
661observer:
662	-$(SPLINTRN) observer +checks -exportlocal -exportheader -expect 9
663	-$(SPLINTRN) observer.c +checks -exportlocal -exportheader -expect 8
664	-$(SPLINTR) observer.c -expect 7
665
666.PHONY: oldstyle
667oldstyle:
668	-$(SPLINTR) oldstyle oldstyle2.c -expect 5
669
670.PHONY: outglob
671outglob:
672	-$(SPLINTR) outglob -expect 10
673
674.PHONY: outparam
675outparam:
676	-$(SPLINTR) outparam -expect 12
677
678### evans 2001-08-26: postnotnull new
679
680.PHONY: postnotnull
681postnotnull:
682	${SPLINTR} postnotnull.c -expect 1
683
684### evans 2002-02-09: added parentype.c
685.PHONY: parentype
686parentype:
687	${SPLINTR} parentype.c
688
689#
690# Four new +fcnuse errors for -strict (evans 2001-07-22)
691#
692
693.PHONY: preds
694preds:
695	-$(SPLINTR) +hints preds.c -expect 6
696	-$(SPLINTRN) +hints preds.c -weak -expect 1
697	-$(SPLINTRN) +hints preds.c -strict +impboundsconstraints -exportlocal -exportheader -expect 10
698
699.PHONY: prefixes
700prefixes:
701	-$(SPLINTR) prefixes.c +partial
702	-$(SPLINTRN) prefixes.c +allmacros +checks -exportlocal +partial -exportheader -exportheadervar -expect 4
703	-$(SPLINTR) prefixes.c -typeprefix "T" -expect 2
704	-$(SPLINTR) prefixes.c -typeprefix "^" -expect 1
705	-$(SPLINTR) prefixes.c -typeprefix "^*" -expect 2
706	-$(SPLINTR) prefixes.c -typeprefix "^%*" -expect 2
707	-$(SPLINTR) prefixes.c -typeprefix "^~*" -expect 2
708	-$(SPLINTR) prefixes.c -typeprefix "^" +typeprefixexclude -expect 7
709	-$(SPLINTR) prefixes.c -filestaticprefix "^^" -expect 4
710	-$(SPLINTR) prefixes.c -filestaticprefix "^#" -expect 5
711	-$(SPLINTR) prefixes.c -filestaticprefix "^?&x" -expect 5
712	-$(SPLINTR) prefixes.c -globalprefix "G" -expect 1
713	-$(SPLINTR) prefixes.c -globalprefix "&G?_^" -expect 1
714	-$(SPLINTR) prefixes.c -externalprefix "G" -expect 5
715	-$(SPLINTR) prefixes.c -typeprefix "T" -externalprefix "G" -expect 4
716	-$(SPLINTR) prefixes.c -localprefix "?*" +localprefixexclude -expect 13
717
718.PHONY: printflike
719printflike:
720	-$(SPLINTR) printflike.c -expect 6
721	-$(SPLINTR) printflike.c -warnlintcomments -expect 5
722
723.PHONY: rc
724rc:
725	-$(SPLINTR) -DMYSTERY='"a flag\"wicked cool"' rc.c -expect 1
726	-$(SPLINTR) -DMYSTERY=12 rc.c -expect 1
727	-$(SPLINTR) -f rc1.splintrc rc.c -expect 1
728	-$(SPLINTR) -UMYSTERY -f rc1.splintrc rc.c -expect 1
729	-$(SPLINTR) -f rc3.splintrc rc.c -expect 1
730
731.PHONY: rcfiles
732rcfiles:
733	cd rcfiles; ${MAKE} SPLINT="-$(SPLINTPNEST)"
734
735.PHONY: refcounts
736refcounts:
737	-$(SPLINTR) refcounts.c -expect 7
738
739.PHONY: release
740release:
741	-$(SPLINTR) release.c +memchecks -expect 1
742
743.PHONY: repexpose
744repexpose:
745	-$(SPLINTR) +lh repexpose +memchecks -expect 12
746	-$(SPLINTR) repexpose +memchecks +retalias -expect 15
747	-$(SPLINTRN) repexpose +checks -exportlocal -expect 27
748
749### returned added 2001-05-27
750### (Bug discovered checking splint sources.)
751
752.PHONY: returned
753returned:
754	${SPLINTR} returned.c -expect 1
755
756### russian added 2003-06-07: bug reported in pre-processing non-standard characters.
757.PHONY: russian
758russian:
759	${SPLINTR} russian.c
760
761.PHONY: sharing
762sharing:
763	-$(SPLINTR) sharing1.c -expect 21
764	-$(SPLINTR) sharing3.c -expect  3
765	-$(SPLINTR) sharing4.c -expect 13
766	-$(SPLINTR) sharing4.c -paramimptemp -expect 12
767	-$(SPLINTR) sharing5.c -expect 6
768
769.PHONY: shifts
770shifts:
771	-$(SPLINTR) shifts.c -expect 4
772	-$(SPLINTR) shifts.c -shiftimplementation -expect 3
773	-$(SPLINTR) shifts.c -shiftnegative -expect 1
774
775#drl comment this out until sizesigns is added to cvs
776
777### evans - added 2002-08-17: check warnings with arbitrary integral types
778sizesigns:
779	-$(SPLINTR) +strict sizesigns.c -expect 5
780	-$(SPLINTR) +strict +matchanyintegral sizesigns.c -expect 4
781
782.PHONY: slovaknames
783slovaknames:
784	-$(SPLINTR) +hints slovaknames.c -expect 1
785	-$(SPLINTR) +hints slovaknames.c +accessslovak
786	-$(SPLINTR) +hints +slovak slovaknames.c -expect 3
787	-$(SPLINTR) +hints +slovak -slovakvars slovaknames.c -expect 2
788	-$(SPLINTR) +hints +slovak -accessslovak slovaknames.c -expect 7
789
790##
791## evans 2002-07-22: 1 less warning for specclauses3.c because of NULL result
792##
793
794.PHONY: specclauses
795specclauses:
796	-$(SPLINTR) specclauses.c -expect 6
797	-$(SPLINTR) specclauses2.c -expect 8
798	-$(SPLINTR) specclauses3.c -expect 5
799	-$(SPLINTR) specclauses4.c -expect 3
800	-$(SPLINTR) specclauses5.c -expect 3
801
802.PHONY: specclauses1
803specclauses1:
804	-$(SPLINTR) specclauses.c -expect 6
805
806.PHONY: specclauses2
807specclauses2:
808	-$(SPLINTR) specclauses2.c -expect 8
809
810.PHONY: specclauses3
811specclauses3:
812	-$(SPLINTR) specclauses3.c -expect 6
813
814.PHONY: specclauses4
815specclauses4:
816	-$(SPLINTR) specclauses4.c -expect 3
817
818.PHONY: specclauses5
819specclauses5:
820	-$(SPLINTR) specclauses5.c -expect 3
821
822.PHONY: special
823special:
824	-$(SPLINTR) special -expect 20
825	-$(SPLINTR) special -relaxquals -expect 22
826
827.PHONY: stack
828stack:
829	-$(SPLINTR) stack.c -expect 5
830	-$(SPLINTR) stack.c -stackref
831
832.PHONY: staticarray
833staticarray:
834	-$(SPLINTR) staticarray.c -expect 3
835
836###
837### evans 2002-03-16: Default setting of stringliteralnoroomfinalnull changed
838###
839
840.PHONY: stringliteral
841stringliteral:
842	-$(SPLINTR) stringliteral.c -stringliteralnoroomfinalnull -expect 3
843	-$(SPLINTR) stringliteral.c -expect 4
844
845.PHONY: strings
846strings:
847	-$(SPLINTR) strings.c -expect 3
848	-$(SPLINTR) -readonlystrings -expect 1 strings.c
849	-$(SPLINTR) +modobserverstrict -maintype -expect 4 strings.c
850
851.PHONY: structassign
852structassign:
853	-$(SPLINTR) structassign.c -expect 4
854
855.PHONY: typeof
856typeof:
857	-$(SPLINTR) typeof.c -expect 2
858
859.PHONY: typequals
860typequals:
861	-$(SPLINTR) typequals.c tq.lcl -expect 5
862	-$(SPLINTR) typequals.c -expect 2
863
864.PHONY: ud
865ud:
866	-$(SPLINTR) ud.c -expect 9
867	-$(SPLINTR) ud2 -specundef -expect 3
868
869.PHONY: ulstypes
870ulstypes:
871	-$(SPLINTR) ulstypes.c -expect 8
872	-$(SPLINTR) ulstypes.c +ignorequals
873	-$(SPLINTRN) ulstypes.c +strict -exportheader -exportheadervar -expect 28
874
875# 3 more detected with version 2.5 (change in -numliteral setting)
876
877.PHONY: union
878union:
879	-$(SPLINTR) +memchecks union.c -expect 8
880
881###
882### Added 2001-12-30: fixed union initializer checking in response to
883### bug report from Jim Zelenka.
884###
885
886.PHONY: unioninit
887unioninit:
888	-$(SPLINTR) unioninit.c -expect 2
889
890.PHONY: unnamedsu
891unnamedsu:
892	-$(SPLINTR) unnamedsu.c -expect 0
893
894.PHONY: unreachable
895unreachable:
896	-$(SPLINTR) unreachable.c -expect 5
897	-$(SPLINTR) -unreachable unreachable.c -expect 2
898	-$(SPLINTR) switch.c -expect 4
899
900.PHONY: unsignedcompare
901unsignedcompare:
902	${SPLINTR} +posixlib unsignedcompare.c -expect 4
903
904
905###
906### 2001-06-08 evans: 2 new errors after fixing ansireserved name checks
907###
908
909.PHONY: unused
910unused:
911	-$(SPLINTRN) unused.c +checks -exportlocal -expect 5
912	-$(SPLINTRN) unused.c +checks -exportlocal +topuse -expect 8
913
914###
915### 2001-06-10: Provided by Jim Zalenka
916###
917
918.PHONY: ullint
919ullint:
920	${SPLINTRN} ullint.c -expect 5
921	${SPLINTRN} ullint.c +charint +charintliteral -expect 2
922
923###
924### 2001-12-30: Poor warnings reported by Peter Deutsch
925###
926### 2002-07-03: removed warnings for datatype/macro definitions
927###
928
929.PHONY: utypes
930utypes:
931	${SPLINTRN} utypes.c -expect 2
932
933###
934
935.PHONY: void
936void:
937	${SPLINTRN} void.c -expect 2
938
939###
940### 2001-12-30: Problems with wide character strings reported by Nelson Beebe
941###
942
943.PHONY: widestrings
944widestrings:
945	${SPLINTRN} widestrings.c -expect 2
946
947###
948### New since 2.5q:
949###
950
951.PHONY: linked
952linked:
953	${SPLINTR} linked.c -expect 4
954	${SPLINTR} linked2.c -expect 3
955	${SPLINTR} linked3.c -expect 5
956	${SPLINTR} linked4.c -expect 6
957	${SPLINTR} linked5.c -expect 4
958	${SPLINTR} linked6.c -expect 4
959
960.PHONY: freearray
961freearray:
962	${SPLINTR} freearray.c -expect 1
963
964.PHONY: sizeof
965sizeof:
966	-$(SPLINTR) +bounds sizeof.c -expect 1
967
968
969.PHONY: buffertest
970buffertest:
971	-$(SPLINTR) +bounds buffertest1.c -expect 5
972
973## Integration Tests
974
975## evans 2000-12-22
976## db2: 2 errors are no longer reported, since eref is immutable.
977## Need to clarify what it means for an object to be immutable;
978## there should be 2 types with different storage requirements.
979
980.PHONY: $(SUBDIRTESTS)
981$(SUBDIRTESTS):
982	cd $@; $(MAKE) SPLINT="$(SPLINTRNNEST)"
983
984#drl 11/29/2001 This is a very ugly hack to get make dist to work
985EXTRA_DIST =  ./abst_t.lcl \
986              ./abstptr.lcl \
987              ./alias.lcl \
988              ./alias2.lcl \
989              ./alias3.lcl  \
990              ./db1/erc.lcl \
991              ./db1/bool.lcl \
992              ./db1/dbase.lcl \
993              ./db1/employee.lcl \
994              ./db1/empset.lcl \
995              ./db1/eref.lcl \
996              ./db1/ereftab.lcl \
997              ./alias4.lcl  \
998              ./alias5.lcl \
999              ./argorder2.lcl \
1000              ./argorder4.lcl \
1001              ./args.lcl \
1002              ./cast.lcl \
1003              ./decl2.lcl \
1004              ./empty.lcl \
1005              ./enum.lcl \
1006              ./glob.lcl \
1007              ./impabstract.lcl \
1008              ./iter.lcl \
1009              ./macros.lcl \
1010              ./macrosef.lcl \
1011              ./modtest.lcl \
1012              ./mut.lcl \
1013              ./mut.lh.expect \
1014              ./db2/dbase.lcl \
1015              ./db2/employee.lcl \
1016              ./db2/empset.lcl \
1017              ./db2/erc.lcl \
1018              ./db2/eref.lcl \
1019              ./db2/ereftab.lcl \
1020              ./db2/etest.lcl \
1021              ./null6.lcl \
1022              ./observer.lcl \
1023              ./oldstyle.lcl \
1024              ./outglob.lcl \
1025              ./outparam.lcl \
1026              ./rc1.splintrc \
1027              ./rc2.splintrc \
1028              ./rc3.splintrc \
1029              ./rc3.splintrc.os2 \
1030              ./repexpose.lcl \
1031              ./repexpose.lh.expect \
1032              ./special.lcl \
1033              ./db3/.splintrc \
1034              ./db3/bool.lcl \
1035              ./db3/check.lcl \
1036              ./db3/dbase.lcl \
1037              ./db3/employee.lcl \
1038              ./db3/empset.lcl \
1039              ./db3/erc.lcl \
1040              ./db3/eref.lcl \
1041              ./db3/ereftab.lcl \
1042              ./db3/README \
1043              ./db3/clean \
1044              ./db3/tidy \
1045              ./tq.lcl \
1046              ./ud2.lcl \
1047              ./for/.splintrc \
1048              ./globalbufferannotation/.splintrc \
1049              ./maxset/.splintrc \
1050              ./strchr/.splintrc \
1051              ./tests2.2/bool.lcl \
1052              ./tests2.4/subdir/main.lcl \
1053              ./abstptr.c \
1054              ./alias.c \
1055              ./alias2.c \
1056              ./alias3.c \
1057              ./db1/dbase.c \
1058              ./db1/drive.c \
1059              ./db1/employee.c \
1060              ./db1/empset.c \
1061              ./db1/erc.c \
1062              ./db1/eref.c \
1063              ./db1/ereftab.c \
1064              ./alias4.c \
1065              ./alias5.c \
1066              ./alttypes.c \
1067              ./ansireserved.c \
1068              ./ansireserved2.c \
1069              ./argorder.c \
1070              ./argorder2.c \
1071              ./argorder3.c \
1072              ./argorder4.c \
1073              ./argorder5.c \
1074              ./args.c \
1075              ./arrayinit.c \
1076              ./arraylit.c \
1077              ./blocks.c \
1078              ./branchstate.c \
1079              ./break.c \
1080              ./cases.c \
1081              ./buffertest1.c \
1082              ./cases2.c \
1083              ./cast.c \
1084              ./cast2.c \
1085              ./chararraylit.c \
1086              ./charlit.c \
1087              ./clauses.c \
1088              ./clauses2.c \
1089              ./clauses3.c \
1090              ./commentchar.c \
1091              ./commentcmd.c \
1092              ./compdestroy.c \
1093              ./compoundliterals.c ./compoundliterals.expect \
1094              ./compoundstmt.c ./compoundstmt.expect \
1095              ./condifomit.c \
1096              ./csyntax.c \
1097              ./constannot.c \
1098              ./controldepth.c \
1099              ./csyntax10.c \
1100              ./csyntax11.c \
1101              ./csyntax12.c \
1102              ./csyntax13.c \
1103              ./csyntax14.c \
1104              ./csyntax15.c \
1105              ./csyntax16.c \
1106              ./csyntax17.c \
1107              ./csyntax2.c \
1108              ./csyntax3.c \
1109              ./csyntax4.c \
1110              ./csyntax5.c \
1111              ./csyntax6.c \
1112              ./csyntax7.c \
1113              ./csyntax8.c \
1114              ./csyntax9.c \
1115              ./czechnames.c \
1116              ./czechoslovaknames.c \
1117              ./deadparam.c \
1118              ./decl.c \
1119              ./decl2.c \
1120              ./dkf5kEnum.c \
1121              ./dkf5kRange.c \
1122              ./dkf5kSprintf.c \
1123              ./ensures.c \
1124              ./enum.c \
1125              ./enumtag.c \
1126              ./exports.c \
1127              ./external.c \
1128              ./fields.c \
1129              ./fields2.c \
1130              ./fields3.c \
1131              ./flags.c \
1132              ./glob.c \
1133              ./forbody.c \
1134              ./format.c \
1135              ./freearray.c \
1136              ./funcpointer.c \
1137              ./globals.c \
1138              ./globals2.c \
1139              ./impabstract.c \
1140              ./init.c \
1141              ./innerfree.c \
1142              ./inparam.c \
1143              ./internal.c \
1144              ./iter.c \
1145              ./iter2.c \
1146              ./keep.c \
1147              ./libs.c \
1148              ./linked.c \
1149              ./linked2.c \
1150              ./linked3.c \
1151              ./linked4.c \
1152              ./linked5.c \
1153              ./linked6.c \
1154              ./lintcomments.c \
1155              ./list.c \
1156              ./longconstants.c \
1157              ./macros.c \
1158              ./macrosef.c \
1159	      ./malloc.c \
1160              ./merge.c \
1161              ./modclient.c \
1162              ./modifies.c \
1163              ./modtest.c \
1164              ./moduncon.c \
1165              ./mongoincludes.c \
1166              ./mparen.c \
1167              ./mut.c \
1168              ./mystrncat.c \
1169              ./noeffect.c \
1170              ./null1.c \
1171              ./null2.c \
1172              ./null3.c \
1173              ./null4.c \
1174              ./null5.c \
1175              ./db2/dbase.c \
1176              ./db2/drive.c \
1177              ./db2/employee.c \
1178              ./db2/empset.c \
1179              ./db2/erc.c \
1180              ./db2/eref.c \
1181              ./db2/ereftab.c \
1182              ./db2/etest.c \
1183              ./null6.c \
1184              ./nullassign.c \
1185              ./nullret.c \
1186              ./observer.c \
1187              ./oldstyle.c \
1188              ./outglob.c \
1189              ./outparam.c \
1190              ./postnotnull.c \
1191              ./preds.c \
1192              ./prefixes.c \
1193              ./printflike.c \
1194              ./rc.c \
1195              ./refcounts.c \
1196              ./release.c \
1197              ./repexpose.c \
1198              ./returned.c \
1199              ./sharing1.c \
1200              ./sharing2.c \
1201              ./sharing3.c \
1202              ./sharing4.c \
1203              ./sharing5.c \
1204              ./sizeof.c \
1205              ./slovaknames.c \
1206              ./specclauses.c \
1207              ./specclauses2.c \
1208              ./specclauses3.c \
1209              ./specclauses4.c \
1210              ./specclauses5.c \
1211              ./specclauses6.c \
1212              ./special.c \
1213              ./stack.c \
1214              ./staticarray.c \
1215              ./strings.c \
1216              ./structassign.c \
1217              ./switch.c \
1218              ./t1.c \
1219              ./test.c \
1220              ./db3/dbase.c \
1221              ./db3/drive.c \
1222              ./db3/employee.c \
1223              ./db3/empset.c \
1224              ./db3/erc.c \
1225              ./db3/eref.c \
1226              ./db3/ereftab.c \
1227              ./typequals.c \
1228              ./ud.c \
1229              ./ud2.c \
1230              ./ullint.c \
1231              ./ulstypes.c \
1232              ./union.c \
1233              ./unreachable.c \
1234              ./unsignedcompare.c \
1235              ./unnamedsu.c \
1236              ./unused.c \
1237              ./void.c \
1238              ./conditions/miroslaw.c \
1239              ./conditions/releases.c \
1240              ./fileio/file.c \
1241              ./fileio/filebranch.c \
1242              ./fileio/filerw.c \
1243              ./for/for.c \
1244              ./globalbufferannotation/globalvariable.c \
1245              ./maxset/maxsetannotations.c \
1246              ./maxset/maxsetnoannotations.c \
1247              ./mergestate/taintednm.c \
1248              ./metastate/file.c \
1249              ./metastate/file1.c \
1250              ./metastate/file2.c \
1251              ./metastate/file3.c \
1252              ./metastate/file4.c \
1253              ./metastate/file5.c \
1254              ./metastate/file6.c \
1255              ./metastate/file7.c \
1256              ./metastate/filebad.c \
1257              ./metastate/global.c \
1258              ./metastate/nullbranch.c \
1259              ./metastate/nullbranch2.c \
1260              ./metastate/nullret.c \
1261              ./metastate/osd.c \
1262              ./metastate/sockets.c \
1263              ./metastate/sockets2.c \
1264              ./metastate/struct.c \
1265              ./metastate/test.c \
1266              ./metastate/voidptr.c \
1267              ./moreBufferTests/initialization.c \
1268              ./moreBufferTests/simplifyTest.c \
1269              ./moreBufferTests/strncatNotReallyGood.c \
1270              ./moreBufferTests/strncatReallyGood.c \
1271              ./moreBufferTests/strrchr.c \
1272              ./moreBufferTests/unrecogCall.c \
1273              ./nullterminatedtest/buggy1.c \
1274              ./nullterminatedtest/buggy_support1.c \
1275              ./nullterminatedtest/buggy_support_fmakeword.c \
1276              ./nullterminatedtest/test1.c \
1277              ./nullterminatedtest/test3.c \
1278              ./simplebufferConstraintTests/m.c \
1279              ./simplebufferConstraintTests/sizeof.c \
1280              ./simplebufferConstraintTests/test3.c \
1281              ./simplebufferConstraintTests/test7.c \
1282              ./sizeoftest/sizeof.c \
1283              ./sizeoftest/sizeofConst.c \
1284              ./sizeoftest/Makefile \
1285              ./strchr/strchr.c \
1286              ./suppressfile/test.c \
1287              ./tainted/sprintf.c \
1288              ./tainted/t1.c \
1289              ./tainted/tainted.c \
1290              ./tainted/tainted2.c \
1291              ./tainted/tainted3.c \
1292              ./tainted/tainted4.c \
1293              ./tainted/tainted5.c \
1294              ./tainted/taintedimplicit.c \
1295              ./tainted/taintedmerge.c \
1296              ./tainted/taintedx.c \
1297              ./tainted/test.c \
1298              ./tclauses/globals.c \
1299              ./tclauses/gt.c \
1300              ./tclauses/modifies.c \
1301              ./tclauses/struct.c \
1302              ./tclauses/undef.c \
1303              ./tests2.2/arbints.c \
1304              ./tests2.2/arrayfcn.c \
1305              ./tests2.2/booldef.c \
1306              ./tests2.2/boolenum.c \
1307              ./tests2.2/boolops.c \
1308              ./tests2.2/break.c \
1309              ./tests2.2/bstring.c \
1310              ./tests2.2/decl.c \
1311              ./tests2.2/enumbool.c \
1312              ./tests2.2/extension.c \
1313              ./tests2.2/libraries.c \
1314              ./tests2.2/modarray.c \
1315              ./tests2.2/nestext.c \
1316              ./tests2.2/offsetof.c \
1317              ./tests2.2/posix.c \
1318              ./tests2.2/realloc.c \
1319              ./tests2.2/rex.c \
1320              ./tests2.2/sizeofarray.c \
1321              ./tests2.2/struct.c \
1322              ./tests2.2a/addassign.c \
1323              ./tests2.2a/arrayparam.c \
1324              ./tests2.2a/bitops.c \
1325              ./tests2.2a/boolcomp.c \
1326              ./tests2.2a/boolenum.c \
1327              ./tests2.2a/dobb.c \
1328              ./tests2.2a/duff.c \
1329              ./tests2.2a/erik.c \
1330              ./tests2.2a/floatdouble.c \
1331              ./tests2.2a/florian.c \
1332              ./tests2.2a/fred.c \
1333              ./tests2.2a/isalpha.c \
1334              ./tests2.2a/notreached.c \
1335              ./tests2.2a/obviousloop.c \
1336              ./tests2.2a/popik.c \
1337              ./tests2.2a/sizeof.c \
1338              ./tests2.2a/toralf.c \
1339              ./tests2.4/subdir/main.c \
1340              ./tests2.4/alignof.c \
1341              ./tests2.4/array.c \
1342              ./tests2.4/bitfields.c \
1343              ./tests2.4/bug1.c \
1344              ./tests2.4/bug2.c \
1345              ./tests2.4/bug3.c \
1346              ./tests2.4/chin.c \
1347              ./tests2.4/cpptest.c \
1348              ./tests2.4/driverstub.c \
1349              ./tests2.4/duffs.c \
1350              ./tests2.4/emptycase.c \
1351              ./tests2.4/enumtest.c \
1352              ./tests2.4/error.c \
1353              ./tests2.4/fink.c \
1354              ./tests2.4/flagequal.c \
1355              ./tests2.4/forward.c \
1356              ./tests2.4/hash.c \
1357              ./tests2.4/hexconstants.c \
1358              ./tests2.4/innercomment.c \
1359              ./tests2.4/komazi.c \
1360              ./tests2.4/longlong.c \
1361              ./tests2.4/main.c \
1362              ./tests2.4/nothing.c \
1363              ./tests2.4/offsetof.c \
1364              ./tests2.4/print.c \
1365              ./tests2.4/ric.c \
1366              ./tests2.4/syncomment.c \
1367              ./tests2.4/syslog.c \
1368              ./tests2.4/test0.c \
1369              ./tests2.4/test1.c \
1370              ./tests2.4/test2.c \
1371              ./tests2.4/timecard.c \
1372              ./tests2.4/toothman.c \
1373              ./tests2.4/ulrich.c \
1374              ./tests2.5/badcomment.c \
1375              ./tests2.5/boolbad.c \
1376              ./tests2.5/boolt.c \
1377              ./tests2.5/booltest.c \
1378              ./tests2.5/dummyfile.c \
1379              ./tests2.5/hoof.c \
1380              ./tests2.5/immutable.c \
1381              ./tests2.5/impabsmodule.c \
1382              ./tests2.5/literals.c \
1383              ./tests2.5/quals.c \
1384              ./tests2.5/sort.c \
1385              ./tests2.5/testalt.c \
1386              ./tests2.5/testimmutable.c \
1387              ./tests2.5/uconstants.c \
1388              ./tests2.5/ull.c \
1389              ./warnuse/warnflags.c \
1390              ./warnuse/warngets.c \
1391              ./warnuse/warnuse.c \
1392              ./moreBufferTests2/unknownsize.c \
1393              ./moreBufferTests2/arrayConstExpr.c \
1394              abstptr.expect \
1395              abstract.expect \
1396              alias.expect \
1397              alttypes.expect \
1398              ansireserved.expect \
1399              argorder.expect \
1400              args.expect \
1401              arrayinit.expect \
1402              arraylit.expect \
1403              blocks.expect \
1404              branchstate.expect \
1405              break.expect \
1406              buffertest.expect \
1407              cases.expect \
1408              cast.expect \
1409              chararraylit.expect \
1410              charlit.expect \
1411              clauses.expect \
1412              commentchar.expect \
1413              compdestroy.expect \
1414              constannot.expect \
1415              controldepth.expect \
1416              csyntax.expect \
1417              czechnames.expect \
1418              czechoslovaknames.expect \
1419              db1.expect \
1420              db2.expect \
1421              db3.expect \
1422              deadparam.expect \
1423              decl.expect \
1424              enum.expect \
1425              enumtag.expect \
1426              exports.expect \
1427              external.expect \
1428              fields.expect \
1429              fileio.expect \
1430              flags.expect \
1431              for.expect \
1432              forbody.expect \
1433              format.expect \
1434              freearray.expect \
1435              funcpointer.expect \
1436              glob.expect \
1437              globalbufferannotation.expect \
1438              globals.expect \
1439              help.expect \
1440              impabstract.expect \
1441              init.expect \
1442              inparam.expect \
1443              internal.expect \
1444              iter.expect \
1445              keep.expect \
1446              libs.expect \
1447              linked.expect \
1448              lintcomments.expect \
1449              list.expect \
1450              longconstants.expect \
1451              macros.expect \
1452              macrosef.expect \
1453              maxset.expect \
1454              merge.expect \
1455              mergestate.expect \
1456              metastate.expect \
1457              modifies.expect \
1458              modtest.expect \
1459              moduncon.expect \
1460              mongoincludes.expect \
1461              moreBufferTests.expect \
1462              moreBufferTests2.expect \
1463              mut.lh.expect \
1464              mystrncat.expect \
1465              noeffect.expect \
1466              null.expect \
1467              nullterminatedtest.expect \
1468              observer.expect \
1469              oldstyle.expect \
1470              outglob.expect \
1471              outparam.expect \
1472              postnotnull.expect \
1473              preds.expect \
1474              prefixes.expect \
1475              printflike.expect \
1476              rc.expect \
1477              refcounts.expect \
1478              release.expect \
1479              repexpose.expect \
1480              repexpose.lh.expect \
1481              returned.expect \
1482              sharing.expect \
1483              simplebufferConstraintTests.expect \
1484              sizeof.expect \
1485              sizeoftest.expect \
1486              slovaknames.expect \
1487              specclauses.expect \
1488              special.expect \
1489              stack.expect \
1490              staticarray.expect \
1491              strchr.expect \
1492              strings.expect \
1493              structassign.expect \
1494              tainted.expect \
1495              tests2.2.expect \
1496              tests2.2a.expect \
1497              tests2.3.expect \
1498              tests2.4.expect \
1499              tests2.5.expect \
1500              typequals.expect \
1501              ud.expect \
1502              ullint.expect \
1503              ulstypes.expect \
1504              union.expect \
1505              unnamedsu.expect \
1506              unreachable.expect \
1507              unsignedcompare.expect \
1508              unused.expect \
1509              void.expect \
1510              ./db1/bool.h \
1511              ./db1/dbase.h \
1512              ./db1/employee.h \
1513              ./db1/empset.h \
1514              ./db1/erc.h \
1515              ./db1/eref.h \
1516              ./db1/ereftab.h \
1517              ./bool.h \
1518              ./decl2.h \
1519              ./exports.h \
1520              ./iter.h \
1521              ./iter2.h \
1522              ./minc1.h \
1523              ./minc2.h \
1524              ./minc3.h \
1525              ./minc4.h \
1526              ./minc5.h \
1527              ./modifies.h \
1528              ./mut.h \
1529              ./db2/bool.h \
1530              ./db2/dbase.h \
1531              ./db2/employee.h \
1532              ./db2/empset.h \
1533              ./db2/erc.h \
1534              ./db2/eref.h \
1535              ./db2/ereftab.h \
1536              ./pivo.h \
1537              ./repexpose.h \
1538              ./db3/bool.h \
1539              ./db3/dbase.h \
1540              ./db3/employee.h \
1541              ./db3/empset.h \
1542              ./db3/erc.h \
1543              ./db3/eref.h \
1544              ./db3/ereftab.h \
1545              ./tq.h \
1546              ./metastate/global.h \
1547              ./suppressfile/test.h \
1548              ./tests2.2/mbool.h \
1549              ./tests2.4/forward.h \
1550              ./tests2.4/hash.h \
1551              ./tests2.4/timecard.h \
1552              ./tests2.5/baz.h \
1553              ./tests2.5/bimbim.h \
1554              ./tests2.5/immutable.h \
1555              ./tests2.5/impabsmodule.h \
1556              ./tests2.5/socket.h \
1557              ./Makefile.os2 \
1558              ./db1/Makefile \
1559              ./db2/Makefile \
1560              ./db3/Makefile \
1561              ./conditions/Makefile \
1562              ./fileio/Makefile \
1563              ./for/Makefile \
1564              ./globalbufferannotation/Makefile \
1565              ./maxset/Makefile \
1566              ./mergestate/Makefile \
1567              ./metastate/Makefile \
1568              ./moreBufferTests/Makefile \
1569              ./simplebufferConstraintTests/Makefile \
1570              ./strchr/Makefile \
1571              ./tainted/Makefile \
1572              ./temp/Makefile \
1573              ./tests2.2/Makefile \
1574              ./tests2.2/Makefile-tests2.2.os2 \
1575              ./tests2.4/Makefile \
1576              ./tests2.4/Makefile-tests2.4.os2 \
1577              ./tests2.5/Makefile \
1578              ./warnuse/Makefile \
1579              ./Makefile.am \
1580              ./Makefile.in \
1581              ./moreBufferTests2/Makefile \
1582              ./fileio/eof.mts ./fileio/file.mts ./fileio/filerw.mts ./mergestate/tainted.mts ./mergestate/taintednm.mts ./metastate/file.mts ./metastate/nullterminated.mts ./metastate/sockets.mts ./tainted/tainted-bad.mts ./tainted/tainted.mts ./fileio/file.xh ./fileio/filerw.xh ./mergestate/tainted.xh ./mergestate/taintednm.xh ./metastate/file.xh ./tainted/tainted.xh \
1583                db2.old-expect   union.pp warnuse.old-expect \
1584               ./tests2.5/badcomment  ./tests2.5/boolbad  ./tests2.5/booltest   ./tests2.5/uconstants  loopexec.expect mergenull.expect shifts.expect looptesteffect.expect \
1585                unioninit.expect  unioninit.c utypes.c \
1586                utypes.expect widestrings.expect  widestrings.c  \
1587                functionmacro.expect functionmacro.c  info.c info.expect \
1588                longint.c loopexec.c looptesteffect.c mergenull.c shifts.c \
1589		longint.expect nullret.expect numabstract.expect \
1590		sizesigns.expect typeof.expect \
1591                manual.expect ./manual/Makefile \
1592                ./manual/annotglobs.c  ./manual/bool.c  ./manual/bool.h  ./manual/clauses.c  ./manual/employee.h  ./manual/exposure.c  ./manual/globals.c  ./manual/ignore.c  ./manual/implicit.c  ./manual/intSet.h  ./manual/list.c  ./manual/loop.c  ./manual/macros.c  ./manual/modify.c  ./manual/mstring.c  ./manual/mstring.h  ./manual/mstringnn.c  ./manual/multiError.c  ./manual/names.c  ./manual/noeffect.c  ./manual/null.c  ./manual/only.c  ./manual/order.c  ./manual/palindrome.c  ./manual/palindrome.h  ./manual/refs.c  ./manual/returned.c  ./manual/rgb.c  ./manual/rstring.c  ./manual/rstring.h  ./manual/sample.c  ./manual/setChar.c  ./manual/setname.c  ./manual/setname.h  ./manual/special.c  ./manual/stack.c  ./manual/sumsquares.c  ./manual/switch.c  ./manual/testpal.c  ./manual/types.c  ./manual/unique.c  ./manual/usedef.c  ./manual/bounds.c \
1593                  arraydims.expect arraydims.c \
1594                  moreBufferTests2/fixedArrayType.c oldstyle2.c \
1595                  divzero.expect parentype.expect \
1596                  divzero.c parentype.c \
1597stringliteral.expect  stringliteral.c \
1598  numabstract.c sizesigns.c typeof.c   nullassign.expect
1599
1600#		sizesigns.c sizesigns.expect \
1601