Added files for new tests to the repository.
.PHONY: specclauses stack staticarray
.PHONY: strings structassign
.PHONY: typequals ud ulstypes union unreachable unused
-.PHONY: db1 db2 db3 tests2.2 tests2.2a tests2.4
+.PHONY: db1 db2 db3 tests2.2 tests2.2a tests2.4 tests2.5
.PHONY: all test fulltest expects quicktest
.PHONY: nullterminatedtest
SHELL = /bin/csh -f
# Command to run lclint
-LCLINT = lclint
+LCLINT = ${HOME}/lclint-dev/src/lclint
LCLINTP = $(LCLINT)
# Make sure .lclintrc files are not used so test results do not
LCLINTRN = $(LCLINTP) -nof -hints -booltype "bool"
LCLINTR = $(LCLINTRN) -exportlocal
-UNITTESTS = help abstptr abstract alias alttypes ansireserved argorder args blocks break cases cast charlit clauses commentchar compdestroy controldepth csyntax czechnames czechoslovaknames decl enum exports external fields flags funcpointer glob globals impabstract init inparam internal iter keep libs lintcomments list macros macrosef merge modifies modtest moduncon mongoincludes null observer oldstyle outglob outparam preds prefixes printflike rc refcounts release repexpose sharing slovaknames specclauses special stack staticarray strings structassign typequals ud ulstypes union unreachable unused tests2.2 tests2.2a tests2.4 nullterminatedtest
+UNITTESTS = help abstptr abstract alias alttypes ansireserved argorder args blocks break cases cast charlit clauses commentchar compdestroy controldepth csyntax czechnames czechoslovaknames decl enum exports external fields flags funcpointer glob globals impabstract init inparam internal iter keep libs lintcomments list macros macrosef merge modifies modtest moduncon mongoincludes null nullterminatedtest observer oldstyle outglob outparam preds prefixes printflike rc refcounts release repexpose sharing slovaknames specclauses special stack staticarray strings structassign typequals ud ulstypes union unreachable unused tests2.2 tests2.2a tests2.4 tests2.5
UNITEXPECTS = $(addsuffix .expect, $(UNITTESTS))
$(LCLINTR) cast -accessmodule -expect 20
$(LCLINTRN) cast2.c +checks -exportlocal -exportheader -expect 3
+### Two addition errors detected with 2.5 with -numliteral.
+
charlit:
$(LCLINTR) +hints charlit.c -expect 4
- $(LCLINTR) +hints -numliteral charlit.c -expect 5
+ $(LCLINTR) +hints -numliteral charlit.c -expect 6
$(LCLINTR) +hints charlit.c +charintliteral +ignoresigns
clauses:
$(LCLINTRN) compdestroy.c +strict +partial -exportheader -expect 3
csyntax:
- $(LCLINTR) +quiet -incondefs csyntax.c
- $(LCLINTR) +quiet csyntax2.c
- $(LCLINTR) +quiet csyntax3.c
+ $(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 csyntax10.c
$(LCLINTR) +quiet csyntax11.c
$(LCLINTR) +quiet csyntax12.c
- $(LCLINTR) +quiet csyntax13.c
+ $(LCLINTR) +quiet csyntax13.c -expect 1
$(LCLINTR) +quiet csyntax14.c
$(LCLINTR) +quiet csyntax15.c
- $(LCLINTR) +quiet csyntax16.c
- $(LCLINTR) +quiet csyntax17.c
+ $(LCLINTR) +quiet csyntax16.c -expect 2
+ $(LCLINTR) +quiet csyntax17.c -expect 3
czechnames:
$(LCLINTR) czechnames.c
$(LCLINTR) printflike.c -warnlintcomments -expect 5
rc:
- -$(LCLINTR) -DMYSTERY='"a flag\"wicked cool"' rc.c -expect 1
- -$(LCLINTR) -DMYSTERY=12 rc.c -expect 1
- -$(LCLINTR) -f rc1.lclintrc rc.c
- -$(LCLINTR) -UMYSTERY -f rc1.lclintrc rc.c -expect 1
- -$(LCLINTR) -f rc3.lclintrc rc.c -expect 1
+ $(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
refcounts:
$(LCLINTR) refcounts.c -expect 7
$(LCLINTR) ulstypes.c -expect 8
$(LCLINTR) ulstypes.c +ignorequals
$(LCLINTRN) ulstypes.c +strict -exportheader -exportheadervar -expect 28
+# 3 more detected with version 2.5 (change in -numliteral setting)
union:
$(LCLINTR) +memchecks union.c -expect 8
$(LCLINTR) sizeof.c ; \
$(LCLINTR) arrayparam.c -expect 5 ; \
$(LCLINTR) notreached.c ; \
- $(LCLINTR) duff.c -casebreak -expect 1 ; \
+ $(LCLINTR) duff.c -casebreak -firstcase ; \
$(LCLINTR) obviousloop.c -expect 4 ; \
$(LCLINTR) bitops.c +bitwisesigned -expect 11 ; \
$(LCLINTR) bitops.c -expect 5 ; \
$(LCLINTR) test1.c; \
$(LCLINTR) test2.c
+tests2.5:
+ setenv LCLINT '$(LCLINTRN)'; cd tests2.5 ; $(MAKE) -e
+
###
### Integration Tests
###
db3:
setenv LCLINT '$(LCLINTRN)'; cd db3; $(MAKE) -e test
-###
-### More integration tests are used locally. If you are developing
-### LCLint send mail to evs@larch.lcs.mit.edu to obtain extra
-### integration test cases.
-
clean:
-rm -f *~ #*# *.o *.lcs a.out
-cd db1 ; $(MAKE) clean
+
/*@-cppnames@*/
/*@-exporttype@*/
-typedef int bool;
+typedef /*@abstract@*/ int bool;
/*@=exporttype@*/
/*@=cppnames@*/
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, expected 5
+Finished LCLint checking --- 6 code errors found, as expected
Finished LCLint checking --- no code errors found
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, expected 5
+Finished LCLint checking --- 6 code errors found, as expected
+
+Finished LCLint checking --- no code errors found
csyntax.c:20:5: Function main declared with 1 arg, should have 2 (int argc,
char *argv[])
+
csyntax2.c: (in function mapping_create)
csyntax2.c:13:3: Assignment of size_t to int: x = sizeof((t))
csyntax2.c:14:3: Assignment of size_t to int: x = sizeof(*t)
+
csyntax3.c:3:4: Function main declared to return a1, should return int
+
csyntax13.c: (in function f)
csyntax13.c:9:11: Variable isrs shadows outer declaration
csyntax13.c:7:9: Previous definition of isrs: isr_t
+
csyntax16.c: (in function main)
csyntax16.c:18:11: Variable getbuiltout used before definition
csyntax16.c: (in function getbuiltout)
csyntax16.c:43:14: Variable qpolygon used before definition
+
csyntax17.c: (in function f)
csyntax17.c:11:11: Variable x initialized to type EID_UNIT_NUM, expects int:
(EID_UNIT_NUM)3
csyntax17.c:12:2: Path with no return in function declared to return int
csyntax17.c:11:7: Variable x declared but not used
+
csyntax.c:20:5: Function main declared with 1 arg, should have 2 (int argc,
char *argv[])
+csyntax2.c: (in function mapping_create)
+csyntax2.c:13:3: Assignment of size_t to int: x = sizeof((t))
+csyntax2.c:14:3: Assignment of size_t to int: x = sizeof(*t)
+
+csyntax3.c:3:4: Function main declared to return a1, should return int
+
+csyntax13.c: (in function f)
+csyntax13.c:9:11: Variable isrs shadows outer declaration
+ csyntax13.c:7:9: Previous definition of isrs: isr_t
+
+csyntax16.c: (in function main)
+csyntax16.c:18:11: Variable getbuiltout used before definition
+csyntax16.c: (in function getbuiltout)
+csyntax16.c:43:14: Variable qpolygon used before definition
+
+csyntax17.c: (in function f)
+csyntax17.c:11:11: Variable x initialized to type EID_UNIT_NUM, expects int:
+ (EID_UNIT_NUM)3
+csyntax17.c:12:2: Path with no return in function declared to return int
+csyntax17.c:11:7: Variable x declared but not used
+
Finished LCLint checking --- 1 code error found, as expected
-bool.h:22: Function bool_initMod name violates Czech naming convention. Type
- bool is not accessible.
- Use +accessczech to allow access to type <t> in functions named <t>_<name>.
-bool.h:25: Function bool_unparse name violates Czech naming convention. Type
- bool is not accessible.
- Use +accessczech to allow access to type <t> in functions named <t>_<name>.
-bool.h:28: Function bool_not name violates Czech naming convention. Type bool
- is not accessible.
- Use +accessczech to allow access to type <t> in functions named <t>_<name>.
-bool.h:31: Function bool_equal name violates Czech naming convention. Type bool
- is not accessible.
- Use +accessczech to allow access to type <t> in functions named <t>_<name>.
czechnames.c:4:5: Variable pivo_pyet name violates Czech naming convention.
Czech prefix pivo names an abstract type that is not accessible.
Use +accessczech to allow access to type <t> in functions named <t>_<name>.
czechnames.c:26:5: Function budweiser name is not consistent with Czech naming
convention. Accessible types: pivo
-Finished LCLint checking --- 10 code errors found, expected 6
+Finished LCLint checking --- 6 code errors found, as expected
empset.c:11: Undocumented modification of s possible from call to
erc_iterStart: erc_iterStart(s)
empset.c:15: Body of if statement is not a block:
- do { { erc_iterFinal(it) } } while (0)
+ do { { erc_iterFinal(it) } } while (FALSE)
empset.c: (in function empset_insert)
empset.c:30: Undetected modification possible from call to unconstrained
function _empset_get: _empset_get
empset.c:139: Undocumented modification of s1 possible from call to
erc_iterStart: erc_iterStart(s1)
empset.c:141: Body of if statement is not a block:
- do { { erc_iterFinal(it) } } while (0)
+ do { { erc_iterFinal(it) } } while (FALSE)
empset.c:140: Body of for statement is not a block:
- if (!empset_member(eref_get(er), s2)) do { { erc_iterFinal(it) } } while (0)
+ if (!empset_member(eref_get(er), s2)) do { { erc_iterFinal(it)
+ } } while (FALSE)
empset.c:135: Variable e declared but not used
empset.c: (in function empset_initMod)
empset.c:148: Undocumented use of file static initDone
empset.c: (in function _empset_get)
empset.c:11: Undocumented modification of s possible from call to
erc_iterStart: erc_iterStart(s)
-empset.c:15: Test expression for while not bool, type int: 0
empset.c:15: Body of if statement is not a block:
- do { { erc_iterFinal(it) } } while (0)
+ do { { erc_iterFinal(it) } } while (FALSE)
empset.c: (in function empset_insert)
empset.c:30: Undetected modification possible from call to unconstrained
function _empset_get: _empset_get
empset.c: (in function empset_subset)
empset.c:139: Undocumented modification of s1 possible from call to
erc_iterStart: erc_iterStart(s1)
-empset.c:141: Test expression for while not bool, type int: 0
empset.c:141: Body of if statement is not a block:
- do { { erc_iterFinal(it) } } while (0)
+ do { { erc_iterFinal(it) } } while (FALSE)
empset.c:140: Body of for statement is not a block:
- if (!empset_member(eref_get(er), s2)) do { { erc_iterFinal(it) } } while (0)
+ if (!empset_member(eref_get(er), s2)) do { { erc_iterFinal(it)
+ } } while (FALSE)
empset.c:135: Variable e declared but not used
empset.c: (in function empset_initMod)
empset.c:148: Undocumented use of file static initDone
erc.h:16: Undocumented modification of internal state possible from call to
bool_initMod: bool_initMod()
erc.h:16: Statement has no effect: employee_initMod()
-erc.h:16: Test expression for while not bool, type int: 0
erc.h: (in macro erc_iterFinal)
erc.h:20: Implicitly temp storage it passed as only param: free (it)
< checking dbase.c >
dbase.c: (in function _db_ercKeyGet)
dbase.c:45: Undocumented modification of c possible from call to erc_iterStart:
erc_iterStart(c)
-dbase.c:49: Test expression for while not bool, type int: 0
dbase.c:56: Name _db_keyGet is in the implementation name space (any identifier
beginning with underscore)
dbase.c: (in function _db_keyGet)
nullstate 1 0
sizeoftype 7 0
formalarray 0 17
-predboolptr 4 0
type 1 0
enumindex 24 0
relaxtypes 15 0
typeuse 1 0
varuse 4 0
======== =========
-Total 335 53
+Total 331 53
-Finished LCLint checking --- 335 code errors found, expected 331
+Finished LCLint checking --- 331 code errors found, as expected
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include <stdio.h>
# include "bool.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "bool.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "employee.h"
# define erc_choose(c) ((c->vals)->val)
# define erc_initMod() \
do { bool_initMod(); employee_initMod();\
- eref_initMod(); } while (0)
+ eref_initMod(); } while (FALSE)
# define erc_iterFinal(it) (free(it))
# define erc_iterReturn(it, result) \
- do { erc_iterFinal(it); return result; } while (0)
+ do { erc_iterFinal(it); return result; } while (FALSE)
# define for_ercElems(er, it, c)\
for (er = erc_yield (it = erc_iterStart (c)); \
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "eref.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "employee.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "employee.h"
erc.c: (in function erc_sprint)
erc.c:141: Fresh storage returned as unqualified (should be only): result
erc.c:122: Fresh storage result allocated
-*** Segmentation Violation
-*** Location (not trusted): erc.h:20
-*** Last code point: exprNode.c:8886
-*** Previous code point: exprNode.c:8886
-*** Please report bug to lclint-bug@cs.virginia.edu
+< checking dbase.c >
+< checking drive.c >
+< checking macros bool.h >
+< global checks >
+
+Finished LCLint checking --- 15 code errors found, as expected
+
+< reading spec employee.lcl >
+< reading spec eref.lcl >
+< reading spec empset.lcl >
+< reading spec ereftab.lcl >
+< reading spec erc.lcl >
+< reading spec dbase.lcl >
+< preprocessing >
+< checking employee.c >
+employee.c: (in function employee_setName)
+employee.c:14: Parameter 1 (e->name) to function strcpy is declared unique but
+ may be aliased externally by parameter 2 (na)
+< checking eref.c >
+eref.c: (in function eref_initMod)
+eref.c:62: Implicitly only storage eref_Pool.conts not released before
+ assignment: eref_Pool.conts = (employee *)malloc(size * sizeof(employee))
+eref.c:70: Implicitly only storage eref_Pool.status not released before
+ assignment: eref_Pool.status = (eref_status *)malloc(size *
+ sizeof(eref_status))
+eref.c:84: Global storage *(eref_Pool.conts) contains 4 undefined fields when
+ call returns: ssNum, salary, gen, j
+eref.c:84: Global storage eref_Pool contains 1 undefined field when call
+ returns: status
+< checking empset.c >
+empset.c: (in function empset_insertUnique)
+empset.c:44: Clauses exit with er referencing fresh storage in true branch,
+ local storage in continuation
+ empset.c:41: Fresh storage er allocated
+empset.c: (in function empset_intersect)
+empset.c:126: Fresh storage toDelete not released before return
+ empset.c:112: Fresh storage toDelete allocated
+< checking ereftab.c >
+< checking erc.c >
+erc.c: (in function erc_create)
+erc.c:33: Null storage c->vals derivable from return value: c
+ erc.c:31: Storage c->vals becomes null
+erc.c: (in function erc_clear)
+erc.c:49: Function returns with null storage derivable from parameter c->vals
+ erc.c:47: Storage c->vals becomes null
+erc.c: (in function erc_final)
+erc.c:54: Implicitly temp storage c passed as only param: free (c)
+erc.c: (in function erc_delete)
+erc.c:98: Implicitly only storage prev->next not released before assignment:
+ prev->next = elem->next
+erc.c:98: Clauses exit with elem referencing implicitly only storage in true
+ branch, local storage in false branch
+ erc.c:96: Storage elem becomes implicitly only
+erc.c:98: Storage c->vals->next is kept in one path, but live in another.
+ erc.c:98: Storage c->vals->next becomes kept
+erc.c:102: Released storage c->vals reachable from parameter at return point
+ erc.c:100: Storage c->vals is released
+< checking dbase.c >
+dbase.c: (in function uncheckedHire)
+dbase.c:121: Fresh storage er not released before return
+ dbase.c:108: Fresh storage er allocated
+< checking drive.c >
+drive.c: (in function main)
+drive.c:49: Variable m_res name is not a macro variable (it is a local
+ variable), but matches the macro variable namespace prefix "m_"
+drive.c:65: Variable m_res name is not a macro variable (it is a local
+ variable), but matches the macro variable namespace prefix "m_"
+drive.c:83: Variable m_res name is not a macro variable (it is a local
+ variable), but matches the macro variable namespace prefix "m_"
+drive.c:120: Variable m_res name is not a macro variable (it is a local
+ variable), but matches the macro variable namespace prefix "m_"
+drive.c:124: Variable m_res name is not a macro variable (it is a local
+ variable), but matches the macro variable namespace prefix "m_"
+drive.c:135: Variable m_res name is not a macro variable (it is a local
+ variable), but matches the macro variable namespace prefix "m_"
+drive.c:140: Fresh storage em1 not released before assignment:
+ em1 = empset_create()
+ drive.c:35: Fresh storage em1 allocated
+drive.c:146: Fresh storage em2 not released before assignment:
+ em2 = empset_create()
+ drive.c:74: Fresh storage em2 allocated
+drive.c:147: Fresh storage em3 not released before assignment:
+ em3 = empset_disjointUnion(em2, em1)
+ drive.c:87: Fresh storage em3 allocated
+drive.c:159: Variable m_res name is not a macro variable (it is a local
+ variable), but matches the macro variable namespace prefix "m_"
+drive.c:163: Fresh storage em1 not released before return
+ drive.c:140: Fresh storage em1 allocated
+drive.c:163: Fresh storage em2 not released before return
+ drive.c:146: Fresh storage em2 allocated
+drive.c:163: Fresh storage em3 not released before return
+ drive.c:147: Fresh storage em3 allocated
+< checking macros bool.h >
+< global checks >
+
+Finished LCLint checking --- 28 code errors found, as expected
+
+< reading spec employee.lcl >
+< reading spec eref.lcl >
+< reading spec empset.lcl >
+< reading spec ereftab.lcl >
+< reading spec erc.lcl >
+< reading spec dbase.lcl >
+< preprocessing >
+< checking employee.c >
+< checking eref.c >
+< checking empset.c >
+< checking ereftab.c >
+< checking erc.c >
+< checking dbase.c >
+< checking drive.c >
+< checking macros bool.h >
+< global checks >
+
+Finished LCLint checking --- no code errors found
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include <stdio.h>
# include "bool.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include <stdio.h>
# include "bool.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "employee.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "eref.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "employee.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "employee.h"
-erc.h: (in macro erc_initMod)
-erc.h:19: Test expression for while not bool, type int: 0
-*** Segmentation Violation
-*** Location (not trusted): erc.h:24
-*** Last code point: exprNode.c:8886
-*** Previous code point: exprNode.c:8886
-*** Please report bug to lclint-bug@cs.virginia.edu
+
+Error Type Reported Suppressed
+=================== ======== =========
+usedef 0 1
+exporttype 0 3
+compdef 0 1
+modfilesys 0 25
+formalarray 0 17
+ ======== =========
+Total 0 47
+
+Finished LCLint checking --- no code errors found
+
+eref.c: (in function eref_alloc)
+eref.c:36: Called procedure printf may access global stdout
+eref.c:36: Undocumented modification of *stdout possible from call to printf:
+ printf("Malloc returned null in eref_alloc\n")
+eref.c:36: Return value (type int) ignored: printf("Malloc r...
+eref.c:46: Called procedure printf may access global stdout
+eref.c:46: Undocumented modification of *stdout possible from call to printf:
+ printf("Malloc returned null in eref_alloc\n")
+eref.c:46: Return value (type int) ignored: printf("Malloc r...
+eref.c: (in function eref_initMod)
+eref.c:82: Called procedure printf may access global stdout
+eref.c:82: Undocumented modification of *stdout possible from call to printf:
+ printf("Malloc returned null in eref_initMod\n")
+eref.c:82: Return value (type int) ignored: printf("Malloc r...
+eref.c:90: Called procedure printf may access global stdout
+eref.c:90: Undocumented modification of *stdout possible from call to printf:
+ printf("Malloc returned null in eref_initMod\n")
+eref.c:90: Return value (type int) ignored: printf("Malloc r...
+erc.c: (in function int_toSize)
+erc.c:11: Undocumented use of global stderr
+erc.c:11: Undocumented modification of *stderr possible from call to fprintf:
+ fprintf(stderr, "Error: int_toSize failure: %d", x)
+erc.c:11: Return value (type int) ignored: fprintf(stderr, ...
+erc.c: (in function erc_create)
+erc.c:28: Called procedure printf may access global stdout
+erc.c:28: Undocumented modification of *stdout possible from call to printf:
+ printf("Malloc returned null in erc_create\n")
+erc.c:28: Return value (type int) ignored: printf("Malloc r...
+erc.c: (in function erc_insert)
+erc.c:80: Called procedure printf may access global stdout
+erc.c:80: Undocumented modification of *stdout possible from call to printf:
+ printf("Malloc returned null in erc_insert\n")
+erc.c:80: Return value (type int) ignored: printf("Malloc r...
+erc.c: (in function erc_sprint)
+erc.c:145: Called procedure printf may access global stdout
+erc.c:145: Undocumented modification of *stdout possible from call to printf:
+ printf("Malloc returned null in erc_sprint\n")
+erc.c:145: Return value (type int) ignored: printf("Malloc r...
+dbase.c: (in function db_print)
+dbase.c:307: Return value (type int) ignored: printf("Employee...
+dbase.c:312: Return value (type int) ignored: printf("%s", pri...
+drive.c: (in function main)
+drive.c:31: Called procedure printf may access global stdout
+drive.c:31: Undocumented modification of *stdout possible from call to printf:
+ printf("FormatPos: Wrong number of arguments. Given %d needs 0.\n", argc -
+ 1)
+drive.c:31: Return value (type int) ignored: printf("FormatPo...
+drive.c:41: Called procedure printf may access global stdout
+drive.c:41: Undocumented modification of *stdout possible from call to printf:
+ printf("Size should be 0.\n")
+drive.c:41: Return value (type int) ignored: printf("Size sho...
+drive.c:57: Called procedure printf may access global stdout
+drive.c:57: Undocumented modification of *stdout possible from call to printf:
+ printf("Size should be 500.\n")
+drive.c:57: Return value (type int) ignored: printf("Size sho...
+drive.c:73: Called procedure printf may access global stdout
+drive.c:73: Undocumented modification of *stdout possible from call to printf:
+ printf("Size should be 250.\n")
+drive.c:73: Return value (type int) ignored: printf("Size sho...
+drive.c:93: Called procedure printf may access global stdout
+drive.c:93: Undocumented modification of *stdout possible from call to printf:
+ printf("Size should be 350.\n")
+drive.c:93: Return value (type int) ignored: printf("Size sho...
+drive.c:100: Called procedure printf may access global stdout
+drive.c:100: Undocumented modification of *stdout possible from call to printf:
+ printf("Size should be 350.\n")
+drive.c:100: Return value (type int) ignored: printf("Size sho...
+drive.c:103: Called procedure printf may access global stdout
+drive.c:103: Undocumented modification of *stdout possible from call to printf:
+ printf("Print two different employees:\n")
+drive.c:103: Return value (type int) ignored: printf("Print tw...
+drive.c:109: Called procedure printf may access global stdout
+drive.c:109: Undocumented modification of *stdout possible from call to printf:
+ printf("%s\n", &(na[0]))
+drive.c:109: Return value (type int) ignored: printf("%s\n", &...
+drive.c:151: Called procedure printf may access global stdout
+drive.c:151: Undocumented modification of *stdout possible from call to printf:
+ printf("Should print true: %s\n", bool_unparse(status == DBS_DUPLERR))
+drive.c:151: Return value (type int) ignored: printf("Should p...
+drive.c:154: Called procedure printf may access global stdout
+drive.c:154: Undocumented modification of *stdout possible from call to printf:
+ printf("Employees 0 - 19\n")
+drive.c:154: Return value (type int) ignored: printf("Employee...
+drive.c:155: Called procedure db_print may access global stdout
+drive.c:155: Undocumented modification of *stdout possible from call to
+ db_print: db_print()
+drive.c:158: Called procedure printf may access global stdout
+drive.c:158: Undocumented modification of *stdout possible from call to printf:
+ printf("Employees 0 - 16, 18 - 19\n")
+drive.c:158: Return value (type int) ignored: printf("Employee...
+drive.c:159: Called procedure db_print may access global stdout
+drive.c:159: Undocumented modification of *stdout possible from call to
+ db_print: db_print()
+drive.c:164: Called procedure printf may access global stdout
+drive.c:164: Undocumented modification of *stdout possible from call to printf:
+ printf("Should get two females: %d\n%s\n", i, sprintResult)
+drive.c:164: Return value (type int) ignored: printf("Should g...
+drive.c:174: Called procedure printf may access global stdout
+drive.c:174: Undocumented modification of *stdout possible from call to printf:
+ printf("Should get two females and ten males: %d\n%s\n", i, sprintResult)
+drive.c:174: Return value (type int) ignored: printf("Should g...
+drive.c:180: Called procedure printf may access global stdout
+drive.c:180: Undocumented modification of *stdout possible from call to printf:
+ printf("Should get two females: %d\n%s\n", i, sprintResult)
+drive.c:180: Return value (type int) ignored: printf("Should g...
+drive.c:184: Called procedure printf may access global stdout
+drive.c:184: Undocumented modification of *stdout possible from call to printf:
+ printf("Should get 18 employees\n")
+drive.c:184: Return value (type int) ignored: printf("Should g...
+drive.c:185: Called procedure db_print may access global stdout
+drive.c:185: Undocumented modification of *stdout possible from call to
+ db_print: db_print()
+
+Error Type Reported Suppressed
+=================== ======== =========
+usedef 0 1
+exporttype 0 3
+globs 26 0
+retvalint 25 0
+compdef 0 1
+mods 26 0
+modfilesys 0 25
+formalarray 0 17
+ ======== =========
+Total 77 47
+
+Finished LCLint checking --- 77 code errors found, as expected
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "bool.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include <stdio.h>
# include "bool.h"
# ifndef EMPLOYEE_H
# define EMPLOYEE_H
-# define maxEmployeeName ((size_t) 20)
+# define maxEmployeeName ((size_t) 20)
# define employeePrintSize (63)
/*@notfunction@*/
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include <stdio.h>
# include "bool.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "employee.h"
# define erc_initMod() \
do { bool_initMod(); employee_initMod();\
- eref_initMod(); } while (0)
+ eref_initMod(); } while (FALSE)
# define erc_elements(c, m_x) \
{ erc m_c = (c); ercElem *m_ec = (m_c)->vals; int m_i = 0; \
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "eref.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "employee.h"
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
# include "bool.h"
# include "employee.h"
assignexpose
badflag
bitwisesigned
- bool
boolcompare
boolfalse
boolint
nullptrarith
nullret
nullstate
+ nullterminated
+ nullterminated
numenummembers
numliteral
numstructfields
whichlib
whileblock
whileempty
+ zerobool
-bool --- boolean type is abstract
likelybool --- type name is probably a boolean type but does not match default
boolean type name, "bool", and alternate name is not set
impabstract --- assume user type definitions are abstract (unless
error)
retval --- return value ignored (sets retvalint, retvalbool and retvalother)
retvalother --- return value of type other than bool or int ignored
-retvalbool --- return value of type bool ignored
+retvalbool --- return value of manifest type bool ignored
retvalint --- return value of type int ignored
f --- load options file (default ~/.lclintrc not loaded)
i --- set LCL initilization file
ansilimits --- check for violations of standard limits (controlnestdepth,
stringliterallen, includenest, numstructfields, numenummembers)
null --- misuses of null pointer
+nullterminated --- misuse of nullterminated allocation
+nullterminated --- misuse of nullterminated allocation
nullderef --- possible dereferencce of null pointer
fcnderef --- dereferencce of a function type
nullpass --- possibly null pointer passed as formal with no null annotation
longsignedintegral --- allow long type to match an arbitrary signed integral
type (e.g., ssize_t)
zeroptr --- 0 is treated as a pointer
+zerobool --- 0 is treated as a boolean
repeatunrecog --- do not suppress repeated unrecognized identifier messages
(instead of only reporting the first error)
sysunrecog --- report unrecognized identifiers with system (__) prefix
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
+Finished LCLint checking --- 1 code error found, as expected
rc2.lclintrc: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
+Finished LCLint checking --- 1 code error found, as expected
rc2.lclintrc:1:18: Warning: setting +boolint redundant with current value
rc.c: (in function f)
--- /dev/null
+void f ()
+{
+ int *z;
+ z = (int *) malloc (4);
+}
+
+
+
--- /dev/null
+int main (void) {
+ int *ip;
+ *ip = 3; /* 5. possible null deref */
+}
Finished LCLint checking --- no code errors found
-duff.c: (in function copy)
-duff.c:15:12: Statement after switch is not a case: do { { case 0: } } while
- (--n > 0)
-
-Finished LCLint checking --- 1 code error found, as expected
+Finished LCLint checking --- no code errors found
obviousloop.c: (in function f)
obviousloop.c:14:3: Unreachable code: x = 12
Finished LCLint checking --- 5 code errors found, as expected
isalpha.c: (in function f)
-isalpha.c:5:19: Function isalpha expects arg 1 to be unsigned char gets char: c
+isalpha.c:5:19: Function isalpha expects arg 1 to be int gets char: c
Finished LCLint checking --- 1 code error found, as expected
isalpha.c: (in function f)
-isalpha.c:5:19: Function isalpha expects arg 1 to be unsigned char gets char: c
+isalpha.c:5:19: Function isalpha expects arg 1 to be int gets char: c
Finished LCLint checking --- 1 code error found, as expected
Finished LCLint checking --- no code errors found
-duff.c: (in function copy)
-duff.c:15:12: Statement after switch is not a case: do { { case 0: } } while
- (--n > 0)
-
-Finished LCLint checking --- 1 code error found, as expected
+Finished LCLint checking --- no code errors found
obviousloop.c: (in function f)
obviousloop.c:14:3: Unreachable code: x = 12
--- /dev/null
+
+Finished LCLint checking --- no code errors found
+
+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
+
+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
+
+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 LCLint checking --- no code errors found
+
+Finished LCLint checking --- no code errors found
+
+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 LCLint checking --- no code errors found
+
+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 LCLint checking --- no code errors found
+
+Finished LCLint checking --- no code errors found
--- /dev/null
+
+Finished LCLint checking --- no code errors found
+
+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
+
+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
+
+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 LCLint checking --- no code errors found
+
+Finished LCLint checking --- no code errors found
+
+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 LCLint checking --- no code errors found
+
+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 LCLint checking --- no code errors found
+
+Finished LCLint checking --- no code errors found
--- /dev/null
+.PHONY: boolt testalt booltest boolbad hoof testalt uconstants ull baz
+
+LCLINT = lclint
+
+# ull and baz added after 2.5q
+all: testalt boolt uconstants badcomment hoof boolbad booltest ull baz
+
+testalt:
+ ${LCLINT} -dump newlint.lcd testalt.c
+
+boolt:
+ ${LCLINT} -expect 1 +partial +booltype pan_bool_t +booltrue PAN_TRUE +boolfalse PAN_FALSE boolt.c
+
+uconstants:
+ ${LCLINT} uconstants.c -expect 2
+
+badcomment:
+ ${LCLINT} badcomment.c -expect 3
+
+hoof:
+ ${LCLINT} hoof.c -expect 1
+ ${LCLINT} hoof.c +ignorequals
+
+ignorecmd:
+ ${LCLINT} +ignorecommand -we
+
+booltest:
+ ${LCLINT} booltest.c -booltype bool -expect 2
+ ${LCLINT} booltest.c -booltype bool +boolint
+ ${LCLINT} booltest.c -booltype bool -predboolint -expect 1
+
+boolbad:
+ ${LCLINT} -weak -booltype BOOLEAN boolbad.c
+
+
+ull:
+ ${LCLINT} ull.c
+
+baz:
+ ${LCLINT} baz.h bimbim.h -I.
--- /dev/null
+.PHONY: boolt testalt booltest boolbad hoof testalt uconstants
+
+LCLINT = lclint
+
+all: testalt boolt uconstants badcomment hoof boolbad booltest
+
+testalt:
+ ${LCLINT} -dump newlint.lcd testalt.c
+
+boolt:
+ ${LCLINT} -expect 1 +partial +booltype pan_bool_t +booltrue PAN_TRUE +boolfalse PAN_FALSE boolt.c
+
+uconstants:
+ ${LCLINT} uconstants.c -expect 2
+
+badcomment:
+ ${LCLINT} badcomment.c -expect 3
+
+hoof:
+ ${LCLINT} hoof.c -expect 1
+ ${LCLINT} hoof.c +ignorequals
+
+ignorecmd:
+ ${LCLINT} +ignorecommand -we
+
+booltest:
+ ${LCLINT} booltest.c -booltype bool -expect 2
+ ${LCLINT} booltest.c -booltype bool +boolint
+ ${LCLINT} booltest.c -booltype bool -predboolint -expect 1
+
+boolbad:
+ ${LCLINT} -weak -booltype BOOLEAN boolbad.c
--- /dev/null
+/*@-PRIVATE-CALLS-@*/
--- /dev/null
+/*
+ * baz.h
+ */
+
+#ifndef _BAZ_H_
+#define _BAZ_H_
+
+struct pxs {
+ int a;
+ int b;
+ int c[4];
+ int d;
+};
+
+typedef struct pxs pxt;
+
+struct xstr {
+ pxt a;
+};
+
+typedef struct xstr pvt;
+
+struct pvas {
+ int a;
+ int b[4];
+};
+
+typedef struct pvas ppvat;
+
+struct pvzas {
+ int a;
+ int c[4];
+};
+
+typedef struct pvzas pvzat;
+
+struct p4zas {
+ int a;
+ int b[4];
+};
+
+struct yabbawabba {
+ pxt a;
+};
+
+#endif /* !_BAZ_H_ */
+
+
--- /dev/null
+/*
+ * bimbim.h
+ */
+
+#ifndef _BIMBIM_H_
+#define _BIMBIM_H_
+
+#include <baz.h>
+
+#endif /* !_BIMBIM_H_ */
--- /dev/null
+typedef /*@abstract@*/ enum {FALSE = 0, TRUE = 1} BOOLEAN;
+
+void func (BOOLEAN foo)
+{
+ foo = FALSE;
+}
+
+int main (void)
+{
+ BOOLEAN foo;
+
+ func (foo);
+
+ return 0;
+}
--- /dev/null
+typedef int pan_bool_t;
+
+#define PAN_FALSE (0)
+#define PAN_TRUE ((pan_bool_t) 1)
+
+pan_bool_t test (pan_bool_t b) {
+ (void) test (2);
+ (void) test (PAN_FALSE);
+ (void) test (PAN_TRUE);
+ (void) test (b);
+ return PAN_TRUE;
+}
--- /dev/null
+/*
+** Boolean type checking
+*/
+
+typedef int bool;
+
+bool f (int i, bool b) {
+ if (i) { /* error with -boolint -predboolint */
+ return i; /* error with -boolint */
+ } else {
+ return b; /* okay */
+ }
+}
+
--- /dev/null
+/*
+ * Problem File.
+ * Command Line used to run:
+ *
+ * /extra/msmoot/lclint-2.5m/bin/lclint -dump newlint.lcd dummyfile.c
+ */
+
+
+#if 1
+// This is our normal definition of PRINTF_LIKE - our lclint run normally
+// does not use this definition because I think I had a problem in a file
+// if I used this definition (I have to retest with 2.5 though). this
+// example does not seem to have a problem
+#define PRINTF_LIKE __attribute__ ((format(printf,1,2)))
+#else
+#define PRINTF_LIKE
+#endif
+
+#if 1 // These fail to -dump
+int /*@alt void@*/ console_printf(const char *__format, ...)
+PRINTF_LIKE;
+int /*@alt void@*/ eprintf(const char *__format, ...) PRINTF_LIKE;
+int /*@alt void@*/ lprintf(const char *__format, ...) PRINTF_LIKE;
+#endif
+
+#if 0 // Even these fail
+int /*@alt void@*/ console_printf(const char *__format, ...);
+int /*@alt void@*/ eprintf(const char *__format, ...);
+int /*@alt void@*/ lprintf(const char *__format, ...);
+#endif
+
+
+/* But all of these work */
+int /* @alt void@ */ console_printf(const char *__format, ...);
+int /* @alt void@ */ eprintf(const char *__format, ...);
+int /* @alt void@ */ lprintf(const char *__format, ...);
+
+int console_printf(const char *__format, ...) PRINTF_LIKE;
+int eprintf(const char *__format, ...) PRINTF_LIKE;
+int lprintf(const char *__format, ...) PRINTF_LIKE;
+
+int console_printf(const char *__format, ...);
+int eprintf(const char *__format, ...);
+int lprintf(const char *__format, ...);
+
+
+
+
--- /dev/null
+#include <stdio.h>
+
+static void test (long int x);
+static void init_arr(/*@out@*/ float[],/*@out@*/ long int*);
+
+int main(void)
+{
+ int j;
+ long i;
+ float arr[2];
+
+ init_arr(arr,&j);
+ test (j);
+
+ for( i=0; i < j; i++ ) {
+ printf("%ld %d: %.6e\n",i,j,arr[i]);
+ }
+ return(0);
+}
+
+void init_arr(float arr[],
+ long int *j)
+{
+ long i;
+
+ *j = 2L;
+ for( i=0; i < 2L; i++ ) {
+ arr[i] = (float)(i+1);
+ }
+}
--- /dev/null
+;;LCLint Dump: newlint.lcd
+;;LCLint 2.5q --- 20 May 2000
+;;lib:166
+;;ctTable
+0 u-2 19 38
+0 p1|-2 20 39
+0 b-2 21 40
+0 p3|-2 22 41
+0 p4|-2 23 42
+0 p5|-2 24 43
+0 p6|-2 25 44
+0 p7|-2 26 45
+0 p8|-2 27 46
+0 p9|-2 28 47
+0 p10|-2 29 48
+0 p11|-2 30 49
+0 p12|-2 31 50
+0 p13|-2 32 51
+0 p14|-2 33 52
+0 p15|-2 34 53
+0 p16|-2 35 54
+0 p17|-2 36 55
+0 p18|-2 37 56
+1 t0|0 312 -1
+1 t1|1&
+1 t2|2&
+1 t3|3&
+1 t4|4 313 -1
+1 t5|5&
+1 t6|6&
+1 t7|7&
+1 t8|8&
+1 t9|9&
+1 t10|10&
+1 t11|11&
+1 t12|12&
+1 t13|13&
+1 t14|14&
+1 t15|15&
+1 t16|16&
+1 t17|17&
+1 t18|18&
+2 y0|0&
+2 y1|1&
+2 y2|2&
+2 y3|3&
+2 y4|4&
+2 y5|5&
+2 y6|6&
+2 y7|7&
+2 y8|8&
+2 y9|9&
+2 y10|10&
+2 y11|11&
+2 y12|12&
+2 y13|13&
+2 y14|14&
+2 y15|15&
+2 y16|16&
+2 y17|17&
+2 y18|18&
+-2 ?!
+0 s1|&
+0 s2|&
+0 s3|&
+0 s4|&
+0 s5|&
+0 s14|&
+0 s15|&
+0 s6|-1 381 -1
+0 s7|&
+0 a0|-1 399 -1
+3 C0.5/20|!
+3 C0.68/2|!
+3 C0.2/5|!
+3 f0 (70|@7|$#,)!
+3 f1 (70|@7|$#,)!
+3 C0.5/3|!
+3 f0 (73|$#,)!
+3 f2 (73|$#,)!
+3 f70 (73|$#,)!
+3 f0 (73|$#,)!
+3 f2 (73|$#,)!
+3 f70 (73|$#,)!
+3 f0 (73|$#,)!
+3 f2 (73|$#,)!
+3 f70 (73|$#,)!
+3 f0 (73|$#,)!
+3 f2 (73|$#,)!
+3 f70 (73|$#,)!
+3 f0 (73|$#,)!
+3 f2 (73|$#,)!
+3 C0.2/5|!
+3 f88 (73|$#,)!
+3 C0.5/3|!
+3 f0 (90|$#,)!
+3 f2 (90|$#,)!
+3 f88 (90|$#,)!
+3 f0 (90|$#,)!
+3 f2 (90|$#,)!
+3 f88 (90|$#,)!
+3 f0 (90|$#,)!
+3 f2 (90|$#,)!
+3 f88 (90|$#,)!
+3 f0 (90|$#,)!
+3 f2 (90|$#,)!
+3 f88 (90|$#,)!
+3 f0 (90|$#,)!
+3 f2 (90|$#,)!
+3 C0.2/5|!
+3 f105 (90|$#,)!
+3 C0.5/3|!
+3 f0 (107|$#,)!
+3 f2 (107|$#,)!
+3 f105 (107|$#,)!
+3 C0.4/5|!
+3 f0 (107|$#,)!
+3 f4 (107|$#,)!
+3 f111 (107|$#,)!
+3 f0 (107|$#,)!
+3 f4 (107|$#,)!
+3 f111 (107|$#,)!
+3 Slconv{23|@1|0@0@3&#decimal_point,23|@1|0@0@3&#thousands_sep,23|@1|0@0@3&#grouping,23|@1|0@0@3&#int_curr_symbol,23|@1|0@0@3&#currency_symbol,23|@1|0@0@3&#mon_decimal_point,23|@1|0@0@3&#mon_thousands_sep,23|@1|0@0@3&#mon_grouping,23|@1|0@0@3&#positive_sign,23|@1|0@0@3&#negative_sign,4|@1|$#int_frac_digits,4|@1|$#frac_digits,4|@1|$#p_cs_precedes,4|@1|$#p_sep_by_space,4|@1|$#n_cs_precedes,4|@1|$#n_sep_by_space,4|@1|$#p_sign_posn,4|@1|$#n_sign_posn,}!
+0 s343|-1 125 -1
+3 f0 (5|$#,23|0@5@7&#,)!
+3 f19 (5|$#,23|0@5@7&#,)!
+3 f23 (5|$#,23|0@5@7&#,)!
+3 f0 ()!
+3 f19 ()!
+1 t119|119&
+3 f125 ()!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,17|$#,)!
+3 f17 (17|$#,17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,5|$#,)!
+3 f17 (17|$#,5|$#,)!
+3 f0 (17|$#,24|4@0@7&#,)!
+3 f17 (17|$#,24|4@0@7&#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,17|$#,)!
+3 f17 (17|$#,17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,)!
+3 f17 (17|$#,)!
+3 f0 (17|$#,36|4@0@7&#,)!
+3 f17 (17|$#,36|4@0@7&#,)!
+3 f0 (17|$#,17|$#,)!
+3 f17 (17|$#,17|$#,)!
+0 a16|&
+3 f0 (171|4@0@7&#,)!
+3 f5 (171|4@0@7&#,)!
+3 f0 (171|$#,5|$#,)!
+3 f1 (171|$#,5|$#,)!
+0 s8|&
+3 ?!
+3 f177 (5|$#,)!
+3 f1 (5|$#,)^180
+1 t179|179&
+3 ?!
+3 f181 (5|$#,)!
+3 f1 (5|$#,)^184
+1 t183|183&
+3 ?!
+3 f185 (5|$#,)!
+3 f1 (5|$#,)^188
+1 t187|187&
+3 ?!
+3 f189 (5|$#,)!
+3 f1 (5|$#,)^192
+1 t191|191&
+3 f0 (5|$#,192|0@5@7&#,)!
+3 f19 (5|$#,192|0@5@7&#,)^195
+1 t194|194&
+3 ?!
+3 f196 (5|$#,)!
+3 f19 (5|$#,)!
+3 f1 (5|$#,192|0@5@7&#,)!
+3 f1 (5|$#,)!
+3 f200 (5|$#,192|0@5@7&#,)!
+3 f0 (5|$#,)!
+3 f5 (5|$#,)!
+0 a17|&
+3 f0 (204|4@0@7&#,!.,)!
+3 f1 (204|4@0@7&#,!.,)!
+3 f0 (204|$#,)!
+3 f1 (204|$#,)!
+0 a18|-1 211 -1
+0 a19|-1 287 -1
+1 t209|209&
+3 f0 (23|$#,)!
+3 f5 (23|$#,)!
+3 f0 (23|$#,23|$#,)!
+3 f5 (23|$#,23|$#,)!
+3 f0 ()!
+3 f19 ()!
+3 f211 ()!
+3 f0 (23|@5|4@5@7&#,)!
+3 f19 (23|@5|4@5@7&#,)!
+3 f23 (23|@5|4@5@7&#,)!
+3 f0 (211|$#,)!
+3 f5 (211|$#,)!
+3 f0 (211|0@5@7&#,)!
+3 f5 (211|0@5@7&#,)!
+3 f0 (23|$#,23|$#,)!
+3 f19 (23|$#,23|$#,)!
+3 f211 (23|$#,23|$#,)!
+3 f0 (23|$#,23|$#,211|$#,)!
+3 f19 (23|$#,23|$#,211|$#,)!
+3 f211 (23|$#,23|$#,211|$#,)!
+3 f0 (211|$#,23|0@5@19@2@0#,)!
+3 f1 (211|$#,23|0@5@19@2@0#,)!
+3 f0 (211|$#,23|0@5@19@2@0#,5|$#,63|$#,)!
+3 f5 (211|$#,23|0@5@19@2@0#,5|$#,63|$#,)!
+3 C0.5/1|!
+3 f0 (211|$#,23|$#,!.,)!
+3 f5 (211|$#,23|$#,!.,)!
+3 f236 (211|$#,23|$#,!.,)!
+3 f0 (211|$#,23|$#,!.,)!
+3 f5 (211|$#,23|$#,!.,)!
+3 f0 (23|$#,!.,)!
+3 f5 (23|$#,!.,)!
+3 f236 (23|$#,!.,)!
+3 f0 (23|$#,!.,)!
+3 f5 (23|$#,!.,)!
+3 f0 (23|4@0@7&#,23|$#,!.,)!
+3 f5 (23|4@0@7&#,23|$#,!.,)!
+3 f236 (23|4@0@7&#,23|$#,!.,)!
+3 f0 (23|4@0@7&#,23|$#,!.,)!
+3 f5 (23|4@0@7&#,23|$#,!.,)!
+3 f0 (211|$#,23|$#,204|$#,)!
+3 f5 (211|$#,23|$#,204|$#,)!
+3 f0 (23|$#,204|$#,)!
+3 f5 (23|$#,204|$#,)!
+3 f0 (23|4@0@7&#,23|$#,204|$#,)!
+3 f5 (23|4@0@7&#,23|$#,204|$#,)!
+3 f0 (211|$#,)!
+3 f5 (211|$#,)!
+3 f0 (23|@5|4@0@7&#,5|$#,211|$#,)!
+3 f19 (23|@5|4@0@7&#,5|$#,211|$#,)!
+3 f23 (23|@5|4@0@7&#,5|$#,211|$#,)!
+3 C0.5/4|!
+3 f0 (263|$#,211|$#,)!
+3 f5 (263|$#,211|$#,)!
+3 f0 (23|$#,211|$#,)!
+3 f5 (23|$#,211|$#,)!
+3 f0 (211|@7|$#,)!
+3 f5 (211|@7|$#,)!
+3 f0 ()!
+3 f5 ()!
+3 f0 (23|4@0@7&#,)!
+3 f19 (23|4@0@7&#,)!
+3 f23 (23|4@0@7&#,)!
+3 f0 (263|$#,211|@7|$#,)!
+3 f5 (263|$#,211|@7|$#,)!
+3 f0 (263|$#,)!
+3 f5 (263|$#,)!
+3 f0 (23|$#,)!
+3 f5 (23|$#,)!
+3 f0 (263|$#,211|$#,)!
+3 f5 (263|$#,211|$#,)!
+3 f0 (20|4@0@7&#,63|$#,63|$#,211|$#,)!
+3 f63 (20|4@0@7&#,63|$#,63|$#,211|$#,)!
+3 f0 (20|$#,63|$#,63|$#,211|$#,)!
+3 f63 (20|$#,63|$#,63|$#,211|$#,)!
+1 t210|210&
+3 f0 (211|$#,287|4@0@7&#,)!
+3 f5 (211|$#,287|4@0@7&#,)!
+3 f0 (211|$#,9|$#,5|$#,)!
+3 f5 (211|$#,9|$#,5|$#,)!
+3 f0 (211|$#,287|$#,)!
+3 f5 (211|$#,287|$#,)!
+3 f0 (211|$#,)!
+3 f9 (211|$#,)!
+3 f0 (211|$#,)!
+3 f1 (211|$#,)!
+3 f0 (211|$#,)!
+3 f1 (211|$#,)!
+3 f0 (211|$#,)!
+3 f5 (211|$#,)!
+3 f0 (211|$#,)!
+3 f5 (211|$#,)!
+3 f0 (23|0@5@7&#,)!
+3 f1 (23|0@5@7&#,)!
+3 f0 (23|$#,)!
+3 f17 (23|$#,)!
+3 f0 (23|$#,)!
+3 f5 (23|$#,)!
+3 f0 (23|$#,)!
+3 f9 (23|$#,)!
+1 t19|19&
+1 t23|23&
+3 f0 (23|$#,313|4@5@7&#,)!
+3 f17 (23|$#,313|4@5@7&#,)!
+3 f0 (23|$#,313|4@5@7&#,5|$#,)!
+3 f9 (23|$#,313|4@5@7&#,5|$#,)!
+3 f0 (23|$#,313|4@5@7&#,5|$#,)!
+3 f10 (23|$#,313|4@5@7&#,5|$#,)!
+3 f0 ()!
+3 f5 ()!
+3 f0 (6|$#,)!
+3 f1 (6|$#,)!
+3 f0 (63|$#,63|$#,)!
+3 f19 (63|$#,63|$#,)!
+3 f20 (63|$#,63|$#,)!
+3 f0 (63|$#,)!
+3 f19 (63|$#,)!
+3 f20 (63|$#,)!
+3 f0 (20|@5|4@5@2&#,63|$#,)!
+3 f19 (20|@5|4@5@2&#,63|$#,)!
+3 f20 (20|@5|4@5@2&#,63|$#,)!
+3 f0 (20|4@5@2&#,)!
+3 f1 (20|4@5@2&#,)!
+3 f0 ()!
+3 f1 ()!
+3 f0 (5|$#,)!
+3 f1 (5|$#,)!
+3 ?!
+3 f339 ()!
+3 f1 ()^342
+1 t341|341&
+3 f0 (342|$#,)!
+3 f5 (342|$#,)!
+3 f0 (23|$#,)!
+3 f19 (23|$#,)!
+3 f23 (23|$#,)!
+3 f0 (23|0@5@7&#,)!
+3 f5 (23|0@5@7&#,)!
+3 ?!
+3 f350 (20|$#,20|$#,)!
+3 f5 (20|$#,20|$#,)^353
+1 t352|352&
+3 f0 (20|$#,20|$#,63|$#,63|$#,353|$#,)!
+3 f19 (20|$#,20|$#,63|$#,63|$#,353|$#,)!
+3 f20 (20|$#,20|$#,63|$#,63|$#,353|$#,)!
+3 ?!
+3 f357 (20|$#,20|$#,)!
+3 f5 (20|$#,20|$#,)^360
+1 t359|359&
+3 f0 (20|$#,63|$#,63|$#,360|$#,)!
+3 f1 (20|$#,63|$#,63|$#,360|$#,)!
+3 f0 (5|$#,)!
+3 f5 (5|$#,)!
+3 S!2{5|@1|$#quot,5|@1|$#rem,}!
+0 s340|&
+0 s20|&
+3 f0 (5|$#,5|$#,)!
+3 f367 (5|$#,5|$#,)!
+3 f0 (9|$#,)!
+3 f9 (9|$#,)!
+3 S!3{9|@1|$#quot,9|@1|$#rem,}!
+0 s341|&
+0 s21|&
+3 f0 (9|$#,9|$#,)!
+3 f374 (9|$#,9|$#,)!
+3 f0 (5|$#,)!
+3 f66 (5|$#,)!
+3 f0 (211|$#,)!
+3 f66 (211|$#,)!
+1 t65|65 463 -1
+3 f0 (381|@5|$#,5|$#,211|$#,)!
+3 f19 (381|@5|$#,5|$#,211|$#,)!
+3 f381 (381|@5|$#,5|$#,211|$#,)!
+3 f0 (65|$#,211|$#,)!
+3 f66 (65|$#,211|$#,)!
+3 f0 (381|$#,211|$#,)!
+3 f5 (381|$#,211|$#,)!
+3 f0 (211|$#,5|$#,)!
+3 f5 (211|$#,5|$#,)!
+3 f0 (211|$#,381|$#,!.,)!
+3 f5 (211|$#,381|$#,!.,)!
+3 f0 (211|$#,381|$#,!.,)!
+3 f5 (211|$#,381|$#,!.,)!
+3 f0 (211|@7|$#,)!
+3 f66 (211|@7|$#,)!
+3 f0 ()!
+3 f66 ()!
+1 t67|67&
+3 f0 (23|$#,63|$#,399|0@5@7&#,)!
+3 f63 (23|$#,63|$#,399|0@5@7&#,)!
+3 f0 (381|0@5@7&#,23|$#,63|$#,399|0@5@7&#,)!
+3 f63 (381|0@5@7&#,23|$#,63|$#,399|0@5@7&#,)!
+3 f0 (399|0@5@7&#,)!
+3 f5 (399|0@5@7&#,)!
+3 f0 (381|0@5@7&#,313|$#,63|$#,399|0@5@7&#,)!
+3 f63 (381|0@5@7&#,313|$#,63|$#,399|0@5@7&#,)!
+3 f0 (65|$#,211|@7|$#,)!
+3 f66 (65|$#,211|@7|$#,)!
+3 f0 (65|$#,)!
+3 f66 (65|$#,)!
+3 f0 (381|$#,63|$#,381|$#,!.,)!
+3 f5 (381|$#,63|$#,381|$#,!.,)!
+3 f0 (381|$#,381|$#,!.,)!
+3 f5 (381|$#,381|$#,!.,)!
+3 f0 (66|$#,211|$#,)!
+3 f66 (66|$#,211|$#,)!
+3 f0 (211|$#,381|$#,204|$#,)!
+3 f5 (211|$#,381|$#,204|$#,)!
+3 f0 (381|$#,63|$#,381|$#,204|$#,)!
+3 f5 (381|$#,63|$#,381|$#,204|$#,)!
+3 f0 (381|$#,204|$#,)!
+3 f5 (381|$#,204|$#,)!
+3 f0 (23|4@5@7&#,65|$#,399|0@5@7&#,)!
+3 f63 (23|4@5@7&#,65|$#,399|0@5@7&#,)!
+3 C0.1/381|!
+3 f0 (381|@5|4@0@9&#,381|$#,)!
+3 f1 (381|@5|4@0@9&#,381|$#,)!
+3 f426 (381|@5|4@0@9&#,381|$#,)!
+3 f0 (381|@5|$#,65|$#,)!
+3 f19 (381|@5|$#,65|$#,)!
+3 f381 (381|@5|$#,65|$#,)!
+3 f0 (381|$#,381|$#,)!
+3 f5 (381|$#,381|$#,)!
+3 f0 (381|$#,381|$#,)!
+3 f5 (381|$#,381|$#,)!
+3 f0 (381|@5|4@0@9&#,381|$#,)!
+3 f1 (381|@5|4@0@9&#,381|$#,)!
+3 f426 (381|@5|4@0@9&#,381|$#,)!
+3 f0 (381|$#,381|$#,)!
+3 f63 (381|$#,381|$#,)!
+0 s342|-1 443 -1
+1 t442|442&
+3 f0 (381|4@0@7&#,63|$#,381|$#,443|$#,)!
+3 f63 (381|4@0@7&#,63|$#,381|$#,443|$#,)!
+3 f0 (381|$#,)!
+3 f63 (381|$#,)!
+3 C0.1/381|!
+3 f0 (381|@5|4@0@9&#,381|$#,63|$#,)!
+3 f1 (381|@5|4@0@9&#,381|$#,63|$#,)!
+3 f448 (381|@5|4@0@9&#,381|$#,63|$#,)!
+3 f0 (381|$#,381|$#,63|$#,)!
+3 f5 (381|$#,381|$#,63|$#,)!
+3 f0 (381|@5|4@0@9&#,381|$#,63|$#,)!
+3 f1 (381|@5|4@0@9&#,381|$#,63|$#,)!
+3 f448 (381|@5|4@0@9&#,381|$#,63|$#,)!
+3 f0 (381|@5|$#,381|$#,)!
+3 f19 (381|@5|$#,381|$#,)!
+3 f381 (381|@5|$#,381|$#,)!
+3 f0 (381|@5|$#,65|$#,)!
+3 f19 (381|@5|$#,65|$#,)!
+3 f381 (381|@5|$#,65|$#,)!
+1 t381|381&
+3 f0 (23|0@5@7&#,463|$#,63|$#,399|0@5@7&#,)!
+3 f63 (23|0@5@7&#,463|$#,63|$#,399|0@5@7&#,)!
+3 f0 (381|$#,381|$#,)!
+3 f63 (381|$#,381|$#,)!
+3 f0 (381|$#,381|$#,)!
+3 f19 (381|$#,381|$#,)!
+3 f381 (381|$#,381|$#,)!
+3 f0 (381|$#,463|0@5@7&#,)!
+3 f17 (381|$#,463|0@5@7&#,)!
+3 f0 (381|0@5@7&#,381|$#,463|$#,)!
+3 f19 (381|0@5@7&#,381|$#,463|$#,)!
+3 f381 (381|0@5@7&#,381|$#,463|$#,)!
+3 f0 (381|$#,463|0@5@7&#,5|$#,)!
+3 f9 (381|$#,463|0@5@7&#,5|$#,)!
+3 f0 (381|$#,463|0@5@7&#,5|$#,)!
+3 f10 (381|$#,463|0@5@7&#,5|$#,)!
+3 f0 (381|0@5@7&#,381|$#,63|$#,)!
+3 f63 (381|0@5@7&#,381|$#,63|$#,)!
+3 f0 (66|$#,)!
+3 f5 (66|$#,)!
+3 f0 (381|$#,65|$#,63|$#,)!
+3 f19 (381|$#,65|$#,63|$#,)!
+3 f381 (381|$#,65|$#,63|$#,)!
+3 f0 (381|$#,381|$#,63|$#,)!
+3 f5 (381|$#,381|$#,63|$#,)!
+3 f0 (381|@5|$#,381|$#,63|$#,)!
+3 f19 (381|@5|$#,381|$#,63|$#,)!
+3 f381 (381|@5|$#,381|$#,63|$#,)!
+3 f0 (381|@5|$#,381|$#,63|$#,)!
+3 f19 (381|@5|$#,381|$#,63|$#,)!
+3 f381 (381|@5|$#,381|$#,63|$#,)!
+3 f0 (381|@5|$#,65|$#,63|$#,)!
+3 f19 (381|@5|$#,65|$#,63|$#,)!
+3 f381 (381|@5|$#,65|$#,63|$#,)!
+3 f0 (381|$#,!.,)!
+3 f5 (381|$#,!.,)!
+3 f0 (381|$#,!.,)!
+3 f5 (381|$#,!.,)!
+0 s9|&
+0 s10|&
+3 C0.2/5|!
+3 f0 (66|$#,)!
+3 f2 (66|$#,)!
+3 f504 (66|$#,)!
+3 f0 (66|$#,)!
+3 f2 (66|$#,)!
+3 f504 (66|$#,)!
+3 f0 (66|$#,)!
+3 f2 (66|$#,)!
+3 f504 (66|$#,)!
+3 f0 (66|$#,502|$#,)!
+3 f2 (66|$#,502|$#,)!
+3 f504 (66|$#,502|$#,)!
+3 f0 (66|$#,)!
+3 f2 (66|$#,)!
+3 f504 (66|$#,)!
+3 f0 (66|$#,)!
+3 f2 (66|$#,)!
+3 C0.2/5|!
+3 f522 (66|$#,)!
+3 f0 (66|$#,)!
+3 f2 (66|$#,)!
+3 f522 (66|$#,)!
+3 f0 (66|$#,)!
+3 f2 (66|$#,)!
+3 f522 (66|$#,)!
+3 f0 (66|$#,)!
+3 f2 (66|$#,)!
+3 f522 (66|$#,)!
+3 f0 (66|$#,)!
+3 f2 (66|$#,)!
+3 f522 (66|$#,)!
+3 f0 (66|$#,)!
+3 f2 (66|$#,)!
+3 f522 (66|$#,)!
+3 C0.2/5|!
+3 f0 (66|$#,)!
+3 f2 (66|$#,)!
+3 f539 (66|$#,)!
+3 C0.66/5|!
+3 f0 (66|$#,503|$#,)!
+3 f66 (66|$#,503|$#,)!
+3 f543 (66|$#,503|$#,)!
+3 f0 (66|$#,)!
+3 f66 (66|$#,)!
+3 f543 (66|$#,)!
+3 f0 (66|$#,)!
+3 f66 (66|$#,)!
+3 f543 (66|$#,)!
+3 f0 (23|$#,)!
+3 f503 (23|$#,)!
+3 f0 (23|$#,)!
+3 f502 (23|$#,)!
+3 f0 (23|$#,63|$#,)!
+3 f5 (23|$#,63|$#,)!
+3 f0 (381|0@5@7&#,23|0@5@7&#,63|$#,)!
+3 f5 (381|0@5@7&#,23|0@5@7&#,63|$#,)!
+3 f0 (23|4@5@7&#,65|$#,)!
+3 f5 (23|4@5@7&#,65|$#,)!
+3 f0 (381|4@0@7&#,23|$#,63|$#,)!
+3 f63 (381|4@0@7&#,23|$#,63|$#,)!
+3 f0 (23|4@0@7&#,381|$#,63|$#,)!
+3 f63 (23|4@0@7&#,381|$#,63|$#,)!
+3 C0.1/20|!
+3 f0 (20|@5|4@0@9&#,20|$#,63|$#,)!
+3 f1 (20|@5|4@0@9&#,20|$#,63|$#,)!
+3 f567 (20|@5|4@0@9&#,20|$#,63|$#,)!
+3 f0 (20|@5|4@0@7&#,20|$#,63|$#,)!
+3 f1 (20|@5|4@0@7&#,20|$#,63|$#,)!
+3 f567 (20|@5|4@0@7&#,20|$#,63|$#,)!
+3 C0.1/23|!
+3 f0 (23|@5|4@0@9&#,23|$#,)!
+3 f1 (23|@5|4@0@9&#,23|$#,)!
+3 f574 (23|@5|4@0@9&#,23|$#,)!
+3 f0 (23|@5|4@0@9&#,23|$#,63|$#,)!
+3 f1 (23|@5|4@0@9&#,23|$#,63|$#,)!
+3 f574 (23|@5|4@0@9&#,23|$#,63|$#,)!
+3 f0 (23|@5|4@0@9&#,23|$#,)!
+3 f1 (23|@5|4@0@9&#,23|$#,)!
+3 f574 (23|@5|4@0@9&#,23|$#,)!
+3 f0 (23|@5|4@0@9&#,23|$#,5|$#,)!
+3 f1 (23|@5|4@0@9&#,23|$#,5|$#,)!
+3 f574 (23|@5|4@0@9&#,23|$#,5|$#,)!
+3 f0 (20|$#,20|$#,63|$#,)!
+3 f5 (20|$#,20|$#,63|$#,)!
+3 f0 (23|$#,23|$#,)!
+3 f5 (23|$#,23|$#,)!
+3 f0 (23|$#,23|$#,)!
+3 f5 (23|$#,23|$#,)!
+3 f0 (23|$#,23|$#,63|$#,)!
+3 f5 (23|$#,23|$#,63|$#,)!
+3 f0 (23|4@5@7&#,23|$#,63|$#,)!
+3 f63 (23|4@5@7&#,23|$#,63|$#,)!
+3 f0 (20|$#,5|$#,63|$#,)!
+3 f19 (20|$#,5|$#,63|$#,)!
+3 f20 (20|$#,5|$#,63|$#,)!
+3 f0 (23|@5|$#,263|$#,)!
+3 f19 (23|@5|$#,263|$#,)!
+3 f23 (23|@5|$#,263|$#,)!
+3 f0 (23|$#,23|$#,)!
+3 f63 (23|$#,23|$#,)!
+3 f0 (23|@5|$#,23|$#,)!
+3 f19 (23|@5|$#,23|$#,)!
+3 f23 (23|@5|$#,23|$#,)!
+3 f0 (23|@5|$#,263|$#,)!
+3 f19 (23|@5|$#,263|$#,)!
+3 f23 (23|@5|$#,263|$#,)!
+3 f0 (23|$#,23|$#,)!
+3 f63 (23|$#,23|$#,)!
+3 f0 (23|@5|0@0@9&#,23|$#,)!
+3 f19 (23|@5|0@0@9&#,23|$#,)!
+3 f23 (23|@5|0@0@9&#,23|$#,)!
+3 f0 (23|@5|0@5@7&#,23|$#,)!
+3 f19 (23|@5|0@5@7&#,23|$#,)!
+3 f23 (23|@5|0@5@7&#,23|$#,)!
+3 C0.1/20|!
+3 f0 (20|@5|4@0@7&#,5|$#,63|$#,)!
+3 f1 (20|@5|4@0@7&#,5|$#,63|$#,)!
+3 f619 (20|@5|4@0@7&#,5|$#,63|$#,)!
+3 f0 (5|$#,)!
+3 f19 (5|$#,)!
+3 f23 (5|$#,)!
+3 f0 (23|$#,)!
+3 f63 (23|$#,)!
+0 s11|&
+0 s12|-1 637 -1
+3 Stm{5|@1|$#tm_sec,5|@1|$#tm_min,5|@1|$#tm_hour,5|@1|$#tm_mday,5|@1|$#tm_mon,5|@1|$#tm_year,5|@1|$#tm_wday,5|@1|$#tm_yday,5|@1|$#tm_isdst,}!
+3 f0 ()!
+3 f628 ()!
+3 f0 (629|$#,629|$#,)!
+3 f17 (629|$#,629|$#,)!
+3 f0 (443|$#,)!
+3 f629 (443|$#,)!
+1 t629|629&
+3 f0 (637|4@5@7&#,)!
+3 f629 (637|4@5@7&#,)!
+3 f0 (443|$#,)!
+3 f19 (443|$#,)!
+3 f23 (443|$#,)!
+3 f0 (637|$#,)!
+3 f19 (637|$#,)!
+3 f23 (637|$#,)!
+3 f0 (637|$#,)!
+3 f19 (637|$#,)!
+3 f443 (637|$#,)!
+3 f0 (637|$#,)!
+3 f19 (637|$#,)!
+3 f443 (637|$#,)!
+3 f0 (23|4@0@7&#,63|$#,23|$#,443|$#,)!
+3 f63 (23|4@0@7&#,63|$#,23|$#,443|$#,)!
+0 s13|&
+3 C1.5/1|!
+3 f0 (!.,)!
+3 f5 (!.,)!
+3 f655 (!.,)!
+3 f0 (!.,)!
+3 f5 (!.,)!
+3 f655 (!.,)!
+;;tistable
+0
+0,16
+16
+0,16,17
+17
+0,16,17,18
+18
+0,16,17,18,19
+19
+;;symTable
+*0 (Datatype)
+0@+@=@0@7@0@0@67#mbstate_t
+2@-@-@0@0@0@0@2#lltX_bool
+13@-@-@0@0@0@0@59#__SIZE_TYPE__
+13@-@-@0@0@0@0@60#__PTRDIFF_TYPE__
+13@-@-@0@0@0@0@61#__WCHAR_TYPE__
+13@-@-@0@0@0@0@62#ptrdiff_t
+13@-@-@0@0@0@0@65#wchar_t
+13@-@-@0@0@0@0@66#wint_t
+13@-@-@0@0@0@0@176#sig_atomic_t
+13@-@-@0@0@0@0@502#wctype_t
+13@-@-@0@0@0@0@503#wctrans_t
+13@-@-@0@0@0@0@628#clock_t
+13@-@-@0@0@0@0@629#time_t
+13@-@-@0@0@0@0@654#__PTRDIFF_TYPE__
+14@-@-@0@0@0@0@63#size_t
+15@-@-@0@0@0@0@64#ssize_t
+20@+@+@0@0@0@0@171#jmp_buf
+20@+@+@0@0@0@0@204#va_list
+20@+@+@0@0@0@0@209#FILE
+20@+@+@0@0@0@0@210#fpos_t
+365@-@-@0@0@0@0@367#div_t
+372@-@-@0@0@0@0@374#ldiv_t
+*1 (Constant)
+0@i0@0@6#NULL
+2@i1@0@0#TRUE
+2$#NDEBUG
+2@i0@0@6#FALSE
+3$#UCHAR_MAX#UCHAR_MIN
+4$#CHAR_MAX#CHAR_MIN#SCHAR_MAX#SCHAR_MIN
+5$#BUFSIZ#CHAR_BIT#CLOCKS_PER_SEC#EDOM#EILSEQ#EOF#ERANGE#EXIT_FAILURE#EXIT_SUCCESS#FILENAME_MAX#FLT_RADIX#FOPEN_MAX#INT_MAX#INT_MIN#LC_ALL#LC_COLLATE#LC_CTYPE#LC_MONETARY#LC_NUMERIC#LC_TIME#L_tmpnam#RAND_MAX#SEEK_CUR#SEEK_END#SEEK_SET#SIGABRT#SIGFPE#SIGILL#SIGINT#SIGSEGV#SIGTERM#TMP_MAX#WCHAR_MAX#WCHAR_MIN#_IOFBF#_IOLBF#_IONBF#__INCLUDE_LEVEL__#__LCLINT__#__LINE__
+6$#UINT_MAX
+7$#SHRT_MAX#SHRT_MIN
+8$#USHRT_MAX
+9$#LONG_MAX#LONG_MIN#MB_LEN_MAX
+10$#ULONG_MAX
+17$#HUGE_VAL
+23$#__BASE_FILE__#__DATE__#__FILE__#__REGISTER_PREFIX__#__TIME__#__USER_LABEL_PREFIX__#__VERSION__
+63$#MB_CUR_MAX
+66$#WEOF
+180$#SIG_DFL
+184$#SIG_ERR
+188$#SIG_IGN
+*3 (Variable)
+5|@1|0@0@0@0@1#DBL_DIG#DBL_MANT_DIG#DBL_MAX_10_EXP#DBL_MAX_EXP#DBL_MIN_10_EXP#DBL_MIN_EXP#FLT_DIG#FLT_MANT_DIG#FLT_MAX_10_EXP#FLT_MAX_EXP#FLT_MIN_10_EXP#FLT_MIN_EXP#FLT_ROUNDS#LDBL_DIG#LDBL_MANT_DIG#LDBL_MAX_10_EXP#LDBL_MAX_EXP#LDBL_MIN_10_EXP#LDBL_MIN_EXP#errno
+16|@1|0@0@0@0@1#FLT_EPSILON#FLT_MAX#FLT_MIN
+17|@1|0@0@0@0@1#DBL_EPSILON#DBL_MAX#DBL_MIN
+18|@1|0@0@0@0@1#LDBL_EPSILON#LDBL_MAX#LDBL_MIN
+211|@1|0@0@0@0@1#stderr#stdin#stdout
+*4 (Function)
+362$@0@g112@0@0@1@tp0,g112$@0#qsort
+175@6@0@5@0@0@1@@1@s0$@0#longjmp
+206$@0@@1@p0$@0#va_start
+233$@0@s3@1@s3,tp0,tp1$@0#setbuf
+338@6@0@6@0@0@1@@1@s0$@0#exit
+323$@0@s1@1@s1$@0#srand
+334$@0@@1@tp0$@0#free
+305$@1@g112@0@0,g122@0@0,s3@1@s3,tg122$@0#perror
+208$@0@@1@p0$@0#va_end
+299$@0@@1@tp0$@0#clearerr#rewind
+72@6@0@8@0@0@1@@1@s0$@0#assert
+336@6@0@6@0@0@1@@1@s0$@0#abort
+235$@0@s3@1@s3,tp0,tp1$@0#setvbuf
+421$@0@@1@tp0$@0#vswprintf
+413@6@0@1@1@0@0@@1@tp0$@0#swprintf
+588$@1@@1@s0$@0#memcmp
+594$@1@@1@s0$@0#strncmp
+257$@0@@1@tp0,p2$@0#vsprintf
+251@6@0@1@2@0@1@@1@s0$@0#sscanf
+291$@0@s3,g112@0@0@1@s3,tp0,g112$@0#fseek
+253$@0@s3,g112@0@0@1@s3,tp0,p2,g112$@0#vfprintf
+241@6@0@1@2@0@0@s3@1@s3,tp0$@0#fscanf
+419$@0@s3@1@s3,tp0$@0#vfwprintf
+392@6@0@1@1@0@0@s3@1@tp0,s3$@0#fwprintf
+394@6@0@1@2@0@0@s3@1@tp0,s3$@0#fwscanf
+453$@1@@1@s0$@0#wcsncmp#wmemcmp
+415@6@0@1@2@0@0@g123@0@0@1@tg123$@0#swscanf
+560$@0@@1@tp0$@0#mbtowc
+215$@0@s3,g112@0@0@1@s3,g112$@0#rename
+590$@1@@1@s0$@0#strcmp#strcoll
+558$@1@@1@s0$@0#mblen
+255$@1@g124@0@0,s3@1@s3,p1,tg124$@0#vprintf
+267$@0@s3@1@s3,tp1$@0#fputs
+246@6@0@1@2@0@1@g123@0@0,s3@1@s3,tg123$@0#scanf
+562$@0@@1@tp0$@0#wctomb
+390$@1@@1@s0$@0#fwide
+293$@0@s3,g112@0@0@1@s3,tp0,g112$@0#fsetpos
+289$@0@g112@0@0@1@tp1,g112$@0#fgetpos
+423$@0@s3,g124@0@0@1@s3,tg124$@0#vwprintf
+388$@0@s3@1@s3,tp1$@0#fputws
+434$@1@@1@s0$@0#wcscmp#wcscoll
+501@6@0@1@2@0@1@g123@0@0,g112@0@0@1@g112,tg123$@0#wscanf
+499@6@0@1@1@0@1@g124@0@0,g112@0@0@1@g112,tg124$@0#wprintf
+265$@0@s3,g112@0@0@1@s3,tp1,g112$@0#fputc#ungetc
+276$@0@s3@1@s3,tp1$@0#putc
+364$@1@@1@s0$@0#abs
+203@6@0@5@0@0$$@0#raise
+213$@0@s3,g112@0@0@1@s3,g112$@0#remove
+280$@1@g124@0@0,s3@1@s3,tg124$@0#puts
+309$@1@@1@s0$@0#atoi
+349$@0@s3@1@s3$@0#system
+483$@1@@1@s0$@0#wctob
+173$@0@@1@p0$@0#setjmp
+223$@0@g112@0@0,s3@1@tp0,g112,s3$@0#fclose#fgetc
+301$@0@g112@0@0@1@g112$@0#feof#ferror
+269$@0@s3@1@s3,tp0$@0#getc
+225$@0@g112@0@0,s3@1@tp0,g112,s3$@0#fflush
+344$@0@s1@1@s1$@0#atexit
+405$@1@@1@s0$@0#mbsinit
+278$@1@g124@0@0,s3@1@s3,tg124$@0#putchar
+271$@1@g123@0@0,s3@1@s3,tg123$@0#getchar
+321$@0@s1@1@s1$@0#rand
+317$@0@g112@0@0@1@tp1,g112$@0#strtol
+477$@0@@1@tp1$@0#wcstol
+371$@1@@1@s0$@0#labs
+311$@1@@1@s0$@0#atol
+295$@0@g112@0@0@1@g112$@0#ftell
+319$@0@g112@0@0@1@tp1,g112$@0#strtoul
+479$@0@@1@tp1$@0#wcstoul
+150$@0@g112@0@0@1@g112$@0#ldexp
+158$@0@g112@0@0@1@g112$@0#pow
+140$@1@@1@s0$@0#atan2#fmod
+152$@0@@1@tp1$@0#frexp
+168$@0@@1@tp1$@0#modf
+315$@0@g112@0@0@1@tp1,g112$@0#strtod
+472$@0@@1@tp1$@0#wcstod
+634$@1@@1@s0$@0#difftime
+136$@0@g112@0@0@1@g112$@0#acos#asin#cosh#exp#log#log10#sqrt
+138$@1@@1@s0$@0#atan#ceil#cos#fabs#floor#sin#sinh#tan#tanh
+307$@1@@1@s0$@0#atof
+356@6@5@1@0@0@1@@1@s0@18@0@0#bsearch
+599@6@5@1@0@0@1@@1@s0@3@0@0#memchr
+332@6@5@1@0@0@0@@1@tp0@2@0@0#realloc
+326@6@5@1@0@0@1@@1@s0@2@0@0#calloc
+329@4@5@1@0@0@1@@1@s0@2@0@0#malloc
+262@6@5@1@0@0@0@s3,g112@0@0@1@s3,tp0,tp2,g112$@0#fgets
+122@6@5@1@0@0@0@s1,g112@0@0@1@s1,g112@19@3@0#setlocale
+607@6@5@1@0@0@1@@1@s0@19@2@0#strpbrk
+602@6@5@1@0@0@1@@1@s0@19@2@0#strchr#strrchr
+618@6@5@1@0@0@0@s1,g112@0@0@1@tp0,s1,g112@19@2@0#strtok
+615@6@5@1@0@0@1@@1@s0@19@2@0#strstr
+625$@1@@1@s0@19@3@0#strerror
+347@6@5@1@0@0@1@@1@s0@19@3@0#getenv
+274@6@5@1@0@0@1@g123@0@0,s3,g112@0@0@1@s3,tp0,tg123,g112@3@0@0#gets
+221$@0@s1@1@tp0,s1@19@3@0#tmpnam
+642$@0@g112@0@0@1@g112@19@3@0#asctime
+645$@1@@1@s0@19@3@0#ctime
+286$@0@s3,g112@0@0@1@s3,tp3,g112$@0#fwrite
+284$@0@s3,g112@0@0@1@s3,tp0,tp3,g112$@0#fread
+465$@0@@1@tp1$@0#wcsrtombs
+653$@0@@1@tp0$@0#strftime
+403$@0@@1@tp0$@0#mbrtowc
+407$@0@@1@tp0$@0#mbsrtowcs
+445$@0@@1@tp0$@0#wcsftime
+401$@1@@1@s0$@0#mbrlen
+566$@0@@1@tp0$@0#wcstombs
+596$@0@@1@tp0$@0#strxfrm
+425$@0@@1@tp0$@0#wcrtomb
+481$@0@@1@tp0$@0#wcsxfrm
+564$@0@@1@tp0$@0#mbstowcs
+604$@1@@1@s0$@0#strcspn#strspn
+441$@1@@1@s0$@0#wcscspn#wcsspn
+627$@1@@1@s0$@0#strlen
+447$@1@@1@s0$@0#wcslen
+386$@0@s3@1@s3,tp1$@0#fputwc
+409$@0@s3@1@s3,tp1$@0#putwc
+417$@0@s3@1@s3,tp1$@0#ungetwc
+378$@1@@1@s0$@0#btowc
+411$@0@s3,g124@0@0@1@s3,tg124$@0#putwchar
+380$@0@s3@1@s3,tp0$@0#fgetwc
+396$@0@s3@1@s3,tp0$@0#getwc
+398$@0@s3,g123@0@0@1@s3,tg123$@0#getwchar
+126$@1@@1@s0@3@0@0#localeconv
+231@6@5@1@0@0@0@s3,g112@0@0@1@tp2,s3,g112@3@0@0#freopen
+228@6@5@1@0@0@0@s3@1@s3@18@0@0#fopen
+218@6@5@1@0@0@0@s3@1@s3@3@0@0#tmpfile
+369$@1@@1@s0$@0#div
+376$@1@@1@s0$@0#ldiv
+486@6@5@1@0@0@1@@1@s0@3@0@0#wmemchr
+384@6@5@1@0@0@0@s3@1@s3,tp0,tp2$@0#fgetws
+497$@0@@1@tp0$@0#wmemset
+491$@0@@1@tp0$@0#wmemcpy#wmemmove
+475@6@5@1@0@0@0@@1@tp2@3@0@0#wcstok
+470@6@5@1@0@0@1@@1@s0@3@0@0#wcsstr
+462@6@5@1@0@0@1@@1@s0$@0#wcsrchr
+432@6@5@1@0@0@1@@1@s0@19@2@0#wcschr
+459@6@5@1@0@0@1@@1@s0$@0#wcspbrk
+651@6@5@1@0@0@0@g112@0@0@1@g112@19@3@0#localtime
+648@6@5@1@0@0@1@@1@s0@19@3@0#gmtime
+556$@1@@1@s0$@0#wctype
+554$@1@@1@s0$@0#wctrans
+632$@0@s1@1@s1$@0#clock
+636$@1@@1@s0$@0#mktime
+639$@0@@1@tp0$@0#time
+201@6@5@1@0@0@0@s1,g112@0@0@1@s1,g112$@0#signal
+622$@0@@1@tp0$@0#memset
+573$@0@@1@tp0$@0#memmove
+570$@0@@1@tp0$@0#memcpy
+586$@0@@1@tp0$@0#strncat
+580$@0@@1@tp0$@0#strncpy
+583$@0@@1@tp0$@0#strcat#strcpy
+451$@0@@1@tp0$@0#wcsncat#wcsncpy
+429$@0@@1@tp0$@0#wcscat#wcscpy
+516$@1@@1@s0$@0#iswctype
+507$@1@@1@s0$@0#iswalnum#iswalpha#iswcntrl#iswdigit#iswgraph#iswlower#iswprint#iswpunct#iswspace#iswupper#iswxdigit
+76$@1@@1@s0$@0#isalnum#isalpha#iscntrl#isdigit#isgraph#islower#isprint#ispunct#isspace#isupper#isxdigit
+114$@1@@1@s0$@0#tolower#toupper
+249@6@0@1@1@0@0@@1@tp0$@0#sprintf
+239@6@0@1@1@0@0@s3@1@s3,tp0$@0#fprintf
+244@6@0@1@1@0@1@g124@0@0,s3@1@s3,tg124$@0#printf
+658$$$@0#test1#test2
+546$@1@@1@s0$@0#towctrans
+549$@1@@1@s0$@0#towlower#towupper
+*7 (Struct tag)
+365@366#@!2
+372@373#@!3
+630@442#@tm
+118@119#@lconv
+;; Modules access
+ansi#8@
+;;End
--- /dev/null
+#include <stdio.h>
+
+static void init_arr(/*@out@*/ float[],/*@out@*/ long int*);
+
+int main(void)
+{
+ int j;
+ long i;
+ float arr[2];
+
+ init_arr(arr,&j);
+ for( i=0; i < j; i++ ) {
+ printf("%ld %d: %.6e\n",i,j,arr[i]);
+ }
+ return(0);
+}
+
+void init_arr(float arr[],
+ long int *j)
+{
+ long i;
+
+ *j = 2L;
+ for( i=0; i < 2L; i++ ) {
+ arr[i] = (float)(i+1);
+ }
+}
--- /dev/null
+/* System-specific socket constants and types. Linux version.
+ Copyright (C) 1991,92,94,95,96,97,98,99 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef __BITS_SOCKET_H
+#define __BITS_SOCKET_H
+
+#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
+# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define __need_size_t
+#define __need_NULL
+#include <stddef.h>
+
+#include <limits.h>
+#include <sys/types.h>
+
+/* Type for length arguments in socket calls. */
+typedef unsigned int socklen_t;
+
+/* Types of sockets. */
+enum __socket_type
+{
+ SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
+ byte streams. */
+#define SOCK_STREAM SOCK_STREAM
+ SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
+ of fixed maximum length. */
+#define SOCK_DGRAM SOCK_DGRAM
+ SOCK_RAW = 3, /* Raw protocol interface. */
+#define SOCK_RAW SOCK_RAW
+ SOCK_RDM = 4, /* Reliably-delivered messages. */
+#define SOCK_RDM SOCK_RDM
+ SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
+ datagrams of fixed maximum length. */
+#define SOCK_SEQPACKET SOCK_SEQPACKET
+ SOCK_PACKET = 10 /* Linux specific way of getting packets
+ at the dev level. For writing rarp and
+ other similar things on the user level. */
+#define SOCK_PACKET SOCK_PACKET
+};
+
+/* Protocol families. */
+#define PF_UNSPEC 0 /* Unspecified. */
+#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
+#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
+#define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */
+#define PF_INET 2 /* IP protocol family. */
+#define PF_AX25 3 /* Amateur Radio AX.25. */
+#define PF_IPX 4 /* Novell Internet Protocol. */
+#define PF_APPLETALK 5 /* Appletalk DDP. */
+#define PF_NETROM 6 /* Amateur radio NetROM. */
+#define PF_BRIDGE 7 /* Multiprotocol bridge. */
+#define PF_ATMPVC 8 /* ATM PVCs. */
+#define PF_X25 9 /* Reserved for X.25 project. */
+#define PF_INET6 10 /* IP version 6. */
+#define PF_ROSE 11 /* Amateur Radio X.25 PLP. */
+#define PF_DECnet 12 /* Reserved for DECnet project. */
+#define PF_NETBEUI 13 /* Reserved for 802.2LLC project. */
+#define PF_SECURITY 14 /* Security callback pseudo AF. */
+#define PF_KEY 15 /* PF_KEY key management API. */
+#define PF_NETLINK 16
+#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */
+#define PF_PACKET 17 /* Packet family. */
+#define PF_ASH 18 /* Ash. */
+#define PF_ECONET 19 /* Acorn Econet. */
+#define PF_ATMSVC 20 /* ATM SVCs. */
+#define PF_SNA 22 /* Linux SNA Project */
+#define PF_IRDA 23 /* IRDA sockets. */
+#define PF_MAX 32 /* For now.. */
+
+/* Address families. */
+#define AF_UNSPEC PF_UNSPEC
+#define AF_LOCAL PF_LOCAL
+#define AF_UNIX PF_UNIX
+#define AF_FILE PF_FILE
+#define AF_INET PF_INET
+#define AF_AX25 PF_AX25
+#define AF_IPX PF_IPX
+#define AF_APPLETALK PF_APPLETALK
+#define AF_NETROM PF_NETROM
+#define AF_BRIDGE PF_BRIDGE
+#define AF_ATMPVC PF_ATMPVC
+#define AF_X25 PF_X25
+#define AF_INET6 PF_INET6
+#define AF_ROSE PF_ROSE
+#define AF_DECnet PF_DECnet
+#define AF_NETBEUI PF_NETBEUI
+#define AF_SECURITY PF_SECURITY
+#define AF_KEY PF_KEY
+#define AF_NETLINK PF_NETLINK
+#define AF_ROUTE PF_ROUTE
+#define AF_PACKET PF_PACKET
+#define AF_ASH PF_ASH
+#define AF_ECONET PF_ECONET
+#define AF_ATMSVC PF_ATMSVC
+#define AF_SNA PF_SNA
+#define AF_IRDA PF_IRDA
+#define AF_MAX PF_MAX
+
+/* Socket level values. Others are defined in the appropriate headers.
+
+ XXX These definitions also should go into the appropriate headers as
+ far as they are available. */
+#define SOL_RAW 255
+#define SOL_DECNET 261
+#define SOL_X25 262
+#define SOL_PACKET 263
+#define SOL_ATM 264 /* ATM layer (cell level). */
+#define SOL_AAL 265 /* ATM Adaption Layer (packet level). */
+#define SOL_IRDA 266
+
+/* Maximum queue length specifiable by listen. */
+#define SOMAXCONN 128
+
+/* Get the definition of the macro to define the common sockaddr members. */
+
+#include <bits/sockaddr.h>
+
+/* Structure describing a generic socket address. */
+struct sockaddr
+ {
+ __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
+ char sa_data[14]; /* Address data. */
+ };
+
+
+/* Structure large enough to hold any socket address (with the historical
+ exception of AF_UNIX). We reserve 128 bytes. */
+#if ULONG_MAX > 0xffffffff
+# define __ss_aligntype __uint64_t
+#else
+# define __ss_aligntype __uint32_t
+#endif
+#define _SS_SIZE 128
+#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype)))
+
+struct sockaddr_storage
+ {
+ __SOCKADDR_COMMON (__ss_); /* Address family, etc. */
+ __ss_aligntype __ss_align; /* Force desired alignment. */
+ char __ss_padding[_SS_PADSIZE];
+ };
+
+
+/* Bits in the FLAGS argument to `send', `recv', et al. */
+enum
+ {
+ MSG_OOB = 0x01, /* Process out-of-band data. */
+#define MSG_OOB MSG_OOB
+ MSG_PEEK = 0x02, /* Peek at incoming messages. */
+#define MSG_PEEK MSG_PEEK
+ MSG_DONTROUTE = 0x04, /* Don't use local routing. */
+#define MSG_DONTROUTE MSG_DONTROUTE
+#ifdef __USE_GNU
+ /* DECnet uses a different name. */
+ MSG_TRYHARD = MSG_DONTROUTE,
+# define MSG_TRYHARD MSG_DONTROUTE
+#endif
+ MSG_CTRUNC = 0x08, /* Control data lost before delivery. */
+#define MSG_CTRUNC MSG_CTRUNC
+ MSG_PROXY = 0x10, /* Supply or ask second address. */
+#define MSG_PROXY MSG_PROXY
+ MSG_TRUNC = 0x20,
+#define MSG_TRUNC MSG_TRUNC
+ MSG_DONTWAIT = 0x40, /* Nonblocking IO. */
+#define MSG_DONTWAIT MSG_DONTWAIT
+ MSG_EOR = 0x80, /* End of record. */
+#define MSG_EOR MSG_EOR
+ MSG_WAITALL = 0x100, /* Wait for a full request. */
+#define MSG_WAITALL MSG_WAITALL
+ MSG_FIN = 0x200,
+#define MSG_FIN MSG_FIN
+ MSG_SYN = 0x400,
+#define MSG_SYN MSG_SYN
+ MSG_URG = 0x800,
+#define MSG_URG MSG_URG
+ MSG_RST = 0x1000,
+#define MSG_RST MSG_RST
+ MSG_ERRQUEUE = 0x2000, /* Fetch message from error queue. */
+#define MSG_ERRQUEUE MSG_ERRQUEUE
+ MSG_NOSIGNAL = 0x4000 /* Do not generate SIGPIPE. */
+#define MSG_NOSIGNAL MSG_NOSIGNAL
+ };
+
+
+/* Structure describing messages sent by
+ `sendmsg' and received by `recvmsg'. */
+struct msghdr
+ {
+ __ptr_t msg_name; /* Address to send to/receive from. */
+ socklen_t msg_namelen; /* Length of address data. */
+
+ struct iovec *msg_iov; /* Vector of data to send/receive into. */
+ size_t msg_iovlen; /* Number of elements in the vector. */
+
+ __ptr_t msg_control; /* Ancillary data (eg BSD filedesc passing). */
+ size_t msg_controllen; /* Ancillary data buffer length. */
+
+ int msg_flags; /* Flags on received message. */
+ };
+
+/* Structure used for storage of ancillary data object information. */
+struct cmsghdr
+ {
+ size_t cmsg_len; /* Length of data in cmsg_data plus length
+ of cmsghdr structure. */
+ int cmsg_level; /* Originating protocol. */
+ int cmsg_type; /* Protocol specific type. */
+#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
+ unsigned char __cmsg_data[0]; /* Ancillary data. */
+ /* XXX Perhaps this should be removed. */
+#endif
+ };
+
+/* Ancillary data object manipulation macros. */
+#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
+# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
+#else
+# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
+#endif
+#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
+#define CMSG_FIRSTHDR(mhdr) \
+ ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
+ ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
+#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
+ & ~(sizeof (size_t) - 1))
+#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
+ + CMSG_ALIGN (sizeof (struct cmsghdr)))
+#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
+
+extern struct cmsghdr *__cmsg_nxthdr __P ((struct msghdr *__mhdr,
+ struct cmsghdr *__cmsg));
+#ifdef __USE_EXTERN_INLINES
+# ifndef _EXTERN_INLINE
+# define _EXTERN_INLINE extern __inline
+# endif
+_EXTERN_INLINE struct cmsghdr *
+__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) __THROW
+{
+ if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
+ /* The kernel header does this so there may be a reason. */
+ return 0;
+
+ __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
+ + CMSG_ALIGN (__cmsg->cmsg_len));
+ if ((unsigned char *) (__cmsg + 1) >= ((unsigned char *) __mhdr->msg_control
+ + __mhdr->msg_controllen)
+ || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
+ >= ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
+ /* No more entries. */
+ return 0;
+ return __cmsg;
+}
+#endif /* Use `extern inline'. */
+
+/* Socket level message types. This must match the definitions in
+ <linux/socket.h>. */
+enum
+ {
+ SCM_RIGHTS = 0x01, /* Transfer file descriptors. */
+#define SCM_RIGHTS SCM_RIGHTS
+#ifdef __USE_BSD
+ SCM_CREDENTIALS = 0x02, /* Credentials passing. */
+# define SCM_CREDENTIALS SCM_CREDENTIALS
+#endif
+ __SCM_CONNECT = 0x03 /* Data array is `struct scm_connect'. */
+ };
+
+/* User visible structure for SCM_CREDENTIALS message */
+
+struct ucred
+{
+ pid_t pid; /* PID of sending process. */
+ uid_t uid; /* UID of sending process. */
+ gid_t gid; /* GID of sending process. */
+};
+
+/* Get socket manipulation related informations from kernel headers. */
+#include <asm/socket.h>
+
+
+/* Structure used to manipulate the SO_LINGER option. */
+struct linger
+ {
+ int l_onoff; /* Nonzero to linger on close. */
+ int l_linger; /* Time to linger. */
+ };
+
+#endif /* bits/socket.h */
+
+
+
--- /dev/null
+int /*@alt void@*/ test1 (...);
+int /*@alt void@*/ test2 (...);
--- /dev/null
+void f (void) {
+ unsigned int x0 = 0x9423U;
+ unsigned long int x1 = 0x9423UL;
+
+}
--- /dev/null
+typedef unsigned long long pan_unit64_t;
+
+void f ()
+{
+ /*@unused@*/ unsigned long long put = 0xFFFFFULL;
+ /*@unused@*/ pan_unit64_t pt = 0xFFFFFFFFFFFFFULL;
+}
--- /dev/null
+typedef unsigned long long pan_unit64_t;
+
+void f ()
+{
+ unsigned long long put = 0xFFFFFULL;
+ pan_unit64_t pt = 0xFFFFFFFFFFFFFULL;
+ pt++;
+}