]> andersk Git - splint.git/commitdiff
Fixed stupid bug in constraintList causing a segfault.
authordrl7x <drl7x>
Wed, 2 Aug 2000 21:10:44 +0000 (21:10 +0000)
committerdrl7x <drl7x>
Wed, 2 Aug 2000 21:10:44 +0000 (21:10 +0000)
Added files for new tests to the repository.

65 files changed:
test/Makefile
test/bool.h
test/charlit.expect
test/charlit.out
test/csyntax.expect
test/csyntax.out
test/czechnames.out
test/db1.expect
test/db1.out
test/db1/bool.lh
test/db1/dbase.lh
test/db1/employee.lh
test/db1/empset.lh
test/db1/erc.h
test/db1/erc.lh
test/db1/eref.lh
test/db1/ereftab.lh
test/db2.out
test/db2/dbase.lh
test/db2/employee.lh
test/db2/empset.lh
test/db2/erc.lh
test/db2/eref.lh
test/db2/ereftab.lh
test/db3.out
test/db3/bool.lh
test/db3/check.lh
test/db3/dbase.lh
test/db3/employee.h
test/db3/employee.lh
test/db3/empset.lh
test/db3/erc.h
test/db3/erc.lh
test/db3/eref.lh
test/db3/ereftab.lh
test/help.expect
test/rc.expect
test/rc.out
test/t1.c [new file with mode: 0644]
test/test.c [new file with mode: 0644]
test/tests2.2a.expect
test/tests2.2a.out
test/tests2.5.expect [new file with mode: 0644]
test/tests2.5.out [new file with mode: 0644]
test/tests2.5/Makefile [new file with mode: 0644]
test/tests2.5/Makefile~ [new file with mode: 0644]
test/tests2.5/badcomment [new file with mode: 0644]
test/tests2.5/badcomment.c [new file with mode: 0644]
test/tests2.5/baz.h [new file with mode: 0644]
test/tests2.5/bimbim.h [new file with mode: 0644]
test/tests2.5/boolbad [new file with mode: 0644]
test/tests2.5/boolbad.c [new file with mode: 0644]
test/tests2.5/boolt.c [new file with mode: 0644]
test/tests2.5/booltest [new file with mode: 0644]
test/tests2.5/booltest.c [new file with mode: 0644]
test/tests2.5/dummyfile.c [new file with mode: 0644]
test/tests2.5/hoof.c [new file with mode: 0644]
test/tests2.5/newlint.lcd [new file with mode: 0644]
test/tests2.5/quals.c [new file with mode: 0644]
test/tests2.5/socket.h [new file with mode: 0644]
test/tests2.5/testalt.c [new file with mode: 0644]
test/tests2.5/uconstants [new file with mode: 0644]
test/tests2.5/uconstants.c [new file with mode: 0644]
test/tests2.5/ull.c [new file with mode: 0644]
test/tests2.5/ull.c~ [new file with mode: 0644]

index bab3fe2955c4067093c5dddc2fb4f837eaab0d3c..48ad9d2262e02d8aed4f856f32d54cf90a7c87d6 100644 (file)
@@ -19,7 +19,7 @@
 .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
 
@@ -28,7 +28,7 @@
 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
@@ -36,7 +36,7 @@ LCLINTP = $(LCLINT)
 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))
 
@@ -176,9 +176,11 @@ cast:
        $(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: 
@@ -202,9 +204,9 @@ compdestroy:
        $(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
@@ -214,11 +216,11 @@ csyntax:
        $(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
@@ -421,11 +423,11 @@ printflike:
        $(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 
@@ -490,6 +492,7 @@ ulstypes:
        $(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
@@ -537,7 +540,7 @@ tests2.2a:
        $(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 ; \
@@ -581,6 +584,9 @@ nullterminatedtest:
        $(LCLINTR) test1.c; \
        $(LCLINTR) test2.c
 
+tests2.5:
+       setenv LCLINT '$(LCLINTRN)'; cd tests2.5 ; $(MAKE) -e
+
 ###
 ### Integration Tests
 ###
@@ -594,11 +600,6 @@ db2:
 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
@@ -607,3 +608,4 @@ clean:
 
 
 
+
index d297edc78cdef71ce6f353ea883c923c2128dcfc..7f37dae45e5c97436b786e325901de0939cfa34c 100644 (file)
@@ -3,7 +3,7 @@
 
 /*@-cppnames@*/
 /*@-exporttype@*/
-typedef int bool;
+typedef /*@abstract@*/ int bool;
 /*@=exporttype@*/
 /*@=cppnames@*/
 
index 8bf01d47a9c518339a80e371b11393f8bf0406eb..979deac142364cb72aae3f2e9be8e9db16e612ed 100644 (file)
@@ -26,6 +26,6 @@ charlit.c:11:18: Initial value of s[1] is type int, expects short int: -1
 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
index 521d861fabc67b53e0f7898bcfaea1c67e7e5167..979deac142364cb72aae3f2e9be8e9db16e612ed 100644 (file)
@@ -26,4 +26,6 @@ charlit.c:11:18: Initial value of s[1] is type int, expects short int: -1
 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
index 2dca99e9d351c5a1fc5d1da7d30a4b0a9a9a116b..ff3ef0b24432669c63cfb6d2452c083c73fba209 100644 (file)
@@ -1,18 +1,24 @@
 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
+
index 8b69d185ef477d7f8eb602f9a2ccdf20ea525500..ff3ef0b24432669c63cfb6d2452c083c73fba209 100644 (file)
@@ -1,3 +1,24 @@
 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
+
index e354f5a03a3165ce889987942bd93a3810dcf63e..3fe4ae9ff5da8bfebf57275202fc828d66f94998 100644 (file)
@@ -19,18 +19,6 @@ czechnames.c:26:5: Function budweiser name is not consistent with Czech naming
 
 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>.
@@ -50,4 +38,4 @@ czechnames.c:15:11: Left operand of == is abstract type (pivo): p == 1
 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
index 307db065ef206087fab17dc70449c85c5bc9830c..ba47d7c2e1a69f35be245229aec584d6eafcfdb1 100644 (file)
@@ -219,7 +219,7 @@ 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: 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
@@ -257,9 +257,10 @@ 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: 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
index 9b083f9d9ddfa854afa8bd59112d07c566eebe62..ba47d7c2e1a69f35be245229aec584d6eafcfdb1 100644 (file)
@@ -218,9 +218,8 @@ empset.c:5: Name _empset_get is in the implementation name space (any
 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
@@ -257,11 +256,11 @@ empset.c:128: Body of for statement is not a block: erc_delete(s1, er)
 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
@@ -352,7 +351,6 @@ erc.h:16: Called procedure bool_initMod may access internal state, but globals
 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 >
@@ -375,7 +373,6 @@ dbase.c:40: Name _db_ercKeyGet is in the implementation name space (any
 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)
@@ -674,7 +671,6 @@ nullret                      1           0
 nullstate                    1           0
 sizeoftype                   7           0
 formalarray                  0          17
-predboolptr                  4           0
 type                         1           0
 enumindex                   24           0
 relaxtypes                  15           0
@@ -686,6 +682,6 @@ paramuse                     1           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
index 643696984f81b2ce86db298cb342a1d72cb96b61..c4312a4f6da7bc382d7be31706c962bd9148bd07 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 # include "bool.h"
 
 
index 3443f1a0e15a9a3fec3deb16447b6c4c5da01158..141afe030e1dba2737077a4b76a73717e174913f 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include <stdio.h>
 # include "bool.h"
index e1fbc2638c4c0fc9bf64873c50ff8ad51a247149..e201551d5e51b4d2587927fdb663ee09e730cd18 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "bool.h"
index 099660b0c071fe48cb7a0a9dbfeab5ed46e4a6f5..1104ded343572b3144a9121ebc0fb96b7a528edf 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "employee.h"
index 7cba64096b6baf286f7128cfd452edb62efe8c7f..ad40e79072efc53aa0a410d1ff838987983bbc12 100644 (file)
@@ -15,12 +15,12 @@ typedef ercList *ercIter;
 # 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)); \
index 6395967d07728f02a5e2b8c392efb4e181e3deda..c3a3c948a30b1f3249dccacc28764bde7cb5f336 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "eref.h"
index 29b05421a12464520d15a3d59db57ec143cf1dec..6009c9c1ef19269b29fdbc93da46b4f5b470484d 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "employee.h"
index a43fcb7e5dcc448de1caa81c6676a48b3033b851..5142bff35741c17eecdb5cef683f662e20625cbb 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "employee.h"
index fde37ebbd57555deb8ae57f707be255f3f19fb7b..9ad7275ab002df5defea079ba132cf40315f9cf1 100644 (file)
@@ -52,8 +52,118 @@ erc.c:102: Released storage c->vals reachable from parameter at return point
 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
index 3443f1a0e15a9a3fec3deb16447b6c4c5da01158..141afe030e1dba2737077a4b76a73717e174913f 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include <stdio.h>
 # include "bool.h"
index 3a3ce429d157b78c51848389c0a120525ad3fc0b..e9081ea0b90361e37978512ed984889c733e4d94 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include <stdio.h>
 # include "bool.h"
index 733f3934250a6e28afe29e0de35aa7c02adbdec9..3099d2ec1052c6ec709acd50cddabf5531f06a20 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "employee.h"
index 9089a056cfcbee3d0962aec2fc4ab860c84b5c5b..8105c2210cfb98bf94dbc8c14c898a48e10dcba4 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "eref.h"
index 29b05421a12464520d15a3d59db57ec143cf1dec..6009c9c1ef19269b29fdbc93da46b4f5b470484d 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "employee.h"
index a43fcb7e5dcc448de1caa81c6676a48b3033b851..5142bff35741c17eecdb5cef683f662e20625cbb 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "employee.h"
index e7a9c844fb2ecd00ccfb0deb81a16c655174e15d..8c4e8fb15338aadfe455b12960893e3ad2a87111 100644 (file)
@@ -1,8 +1,141 @@
 
-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
index 1b60ec7e64ea01a32ae6ae27a35f136ef2a76dc3..3a4de164a6f900b3765e5bb7f3b0fced59b0aa9d 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 # include "bool.h"
 
 
index e4a41f697c4c8816e571bdca8ad5f9de4ec0cfaf..04e55af04cf8b78b967ddc2580563da38305a574 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "bool.h"
index a54d63b2a40ecc7c9dbfe3583a58e92efddf78c8..0bfec4047ccf88396b66a1262ceeed1ccf810ba9 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include <stdio.h>
 # include "bool.h"
index 6489fbab4dafe3b0da874cf3e8f4110b97409dfc..c3141b53de3e397af6a6d9f6a8fd26a4bb8d60f0 100644 (file)
@@ -1,7 +1,7 @@
 # ifndef EMPLOYEE_H
 # define EMPLOYEE_H
 
-# define maxEmployeeName ((size_t) 20)
+# define maxEmployeeName   ((size_t) 20)
 # define employeePrintSize (63)
 
 /*@notfunction@*/
index b8dd981a5d838e897b4ebf3e1e2abd12059f53ff..54cd8f4d299355d120e35848c97e1cba58d6d9b6 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include <stdio.h>
 # include "bool.h"
index d5656bb21fe81e50bdbaa3d3326f6a86ebcb8ba0..4a7ba7bd396fc064deea14677b687a9b26fdb4f3 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "employee.h"
index f6fdb9b8c3badff4ddda30487127da8e7e564a72..cec926c788343aa61aeb561e69920689cf997f0c 100644 (file)
@@ -18,7 +18,7 @@ typedef ercInfo *erc;
 
 # 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; \
index 8f67d93f98a0f9520d04660f67d0aea7c58a1088..d4011bc5d2d233e0edeab38f9f7e9b3e1917923a 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "eref.h"
index e42cd164f462a98bdec92e124a0eec533a61389f..8d28611e6ae1eba3e8f9d43517ede7e5d4ecb4f9 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "employee.h"
index fffce7e67106965c2b5eb227794789af0280872c..50bcca2a157bb2c9f219b3012e150103ccf197ce 100644 (file)
@@ -1,4 +1,4 @@
-/* Output from LCLint 2.5q */
+/* Output from LCLint 2.5p */
 
 # include "bool.h"
 # include "employee.h"
index 19632a37a4b6b8b1c66840fd408fc4a06819b85b..3a339badaa1aaaa1f56dc706b2827dec2ec7d8ef 100644 (file)
@@ -85,7 +85,6 @@ Finished LCLint checking --- no code processed
    assignexpose                
    badflag                     
    bitwisesigned               
-   bool                        
    boolcompare                 
    boolfalse                   
    boolint                     
@@ -313,6 +312,8 @@ Finished LCLint checking --- no code processed
    nullptrarith                
    nullret                     
    nullstate                   
+   nullterminated              
+   nullterminated              
    numenummembers              
    numliteral                  
    numstructfields             
@@ -447,9 +448,9 @@ Finished LCLint checking --- no code processed
    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
@@ -663,7 +664,7 @@ hints --- provide hints on using lclint (hint only reported for first related
 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
@@ -886,6 +887,8 @@ includenest --- set maximum number of nested #include files
 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
@@ -964,6 +967,7 @@ unsigned integral type (e.g., size_t)
 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
index 87223007f8cdb20efdcb640e5891ac431f304dd9..255367f59f3a1395cc4d73b6dc53ee42637c3bda 100644 (file)
@@ -16,7 +16,7 @@ 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)
index 87223007f8cdb20efdcb640e5891ac431f304dd9..255367f59f3a1395cc4d73b6dc53ee42637c3bda 100644 (file)
@@ -16,7 +16,7 @@ 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)
diff --git a/test/t1.c b/test/t1.c
new file mode 100644 (file)
index 0000000..3e5acf2
--- /dev/null
+++ b/test/t1.c
@@ -0,0 +1,8 @@
+void f ()
+{
+  int *z;
+  z = (int *) malloc (4);
+}
+
+
+
diff --git a/test/test.c b/test/test.c
new file mode 100644 (file)
index 0000000..908a1fa
--- /dev/null
@@ -0,0 +1,4 @@
+int main (void) {
+  int  *ip;
+  *ip = 3;           /* 5. possible null deref */
+}
index 0e4a8f4cc34a92ace669299e9f89a3572a0baba0..1f957e85c8ab97cee223063c77204890b9e3fec8 100644 (file)
@@ -54,11 +54,7 @@ Finished LCLint checking --- 5 code errors 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
@@ -98,12 +94,12 @@ bitops.c:6:9: Variable s2 declared but not used
 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
 
index 97fe98125a968b11d103da587cd84e18cd5497b8..1f957e85c8ab97cee223063c77204890b9e3fec8 100644 (file)
@@ -54,11 +54,7 @@ Finished LCLint checking --- 5 code errors 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
diff --git a/test/tests2.5.expect b/test/tests2.5.expect
new file mode 100644 (file)
index 0000000..efa8849
--- /dev/null
@@ -0,0 +1,39 @@
+
+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
diff --git a/test/tests2.5.out b/test/tests2.5.out
new file mode 100644 (file)
index 0000000..efa8849
--- /dev/null
@@ -0,0 +1,39 @@
+
+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
diff --git a/test/tests2.5/Makefile b/test/tests2.5/Makefile
new file mode 100644 (file)
index 0000000..c9724c9
--- /dev/null
@@ -0,0 +1,40 @@
+.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.
diff --git a/test/tests2.5/Makefile~ b/test/tests2.5/Makefile~
new file mode 100644 (file)
index 0000000..0675ded
--- /dev/null
@@ -0,0 +1,32 @@
+.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
diff --git a/test/tests2.5/badcomment b/test/tests2.5/badcomment
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/test/tests2.5/badcomment.c b/test/tests2.5/badcomment.c
new file mode 100644 (file)
index 0000000..63ed335
--- /dev/null
@@ -0,0 +1 @@
+/*@-PRIVATE-CALLS-@*/
diff --git a/test/tests2.5/baz.h b/test/tests2.5/baz.h
new file mode 100644 (file)
index 0000000..0bac11d
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * 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_ */
+
+
diff --git a/test/tests2.5/bimbim.h b/test/tests2.5/bimbim.h
new file mode 100644 (file)
index 0000000..99969f9
--- /dev/null
@@ -0,0 +1,10 @@
+/*
+ * bimbim.h
+ */
+
+#ifndef _BIMBIM_H_
+#define _BIMBIM_H_
+
+#include <baz.h>
+
+#endif /* !_BIMBIM_H_ */
diff --git a/test/tests2.5/boolbad b/test/tests2.5/boolbad
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/test/tests2.5/boolbad.c b/test/tests2.5/boolbad.c
new file mode 100644 (file)
index 0000000..4f15ffb
--- /dev/null
@@ -0,0 +1,15 @@
+typedef /*@abstract@*/ enum {FALSE = 0, TRUE = 1} BOOLEAN;
+
+void func (BOOLEAN foo)
+{
+  foo = FALSE;
+}
+
+int main (void)
+{
+    BOOLEAN foo;
+
+    func (foo);
+
+    return 0;
+}
diff --git a/test/tests2.5/boolt.c b/test/tests2.5/boolt.c
new file mode 100644 (file)
index 0000000..969c0f2
--- /dev/null
@@ -0,0 +1,12 @@
+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;
+}
diff --git a/test/tests2.5/booltest b/test/tests2.5/booltest
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/test/tests2.5/booltest.c b/test/tests2.5/booltest.c
new file mode 100644 (file)
index 0000000..48fc58b
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+** 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 */
+  }
+}
+
diff --git a/test/tests2.5/dummyfile.c b/test/tests2.5/dummyfile.c
new file mode 100644 (file)
index 0000000..f00e319
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * 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, ...);
+
+
+
+
diff --git a/test/tests2.5/hoof.c b/test/tests2.5/hoof.c
new file mode 100644 (file)
index 0000000..56ff0b1
--- /dev/null
@@ -0,0 +1,30 @@
+#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);
+       }
+}
diff --git a/test/tests2.5/newlint.lcd b/test/tests2.5/newlint.lcd
new file mode 100644 (file)
index 0000000..fb2a9b2
--- /dev/null
@@ -0,0 +1,898 @@
+;;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
diff --git a/test/tests2.5/quals.c b/test/tests2.5/quals.c
new file mode 100644 (file)
index 0000000..5c0ac50
--- /dev/null
@@ -0,0 +1,27 @@
+#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);
+       }
+}
diff --git a/test/tests2.5/socket.h b/test/tests2.5/socket.h
new file mode 100644 (file)
index 0000000..5d0b4ff
--- /dev/null
@@ -0,0 +1,309 @@
+/* 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 */
+
+
+
diff --git a/test/tests2.5/testalt.c b/test/tests2.5/testalt.c
new file mode 100644 (file)
index 0000000..5b49c4a
--- /dev/null
@@ -0,0 +1,2 @@
+int /*@alt void@*/ test1 (...);
+int /*@alt void@*/ test2 (...);
diff --git a/test/tests2.5/uconstants b/test/tests2.5/uconstants
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/test/tests2.5/uconstants.c b/test/tests2.5/uconstants.c
new file mode 100644 (file)
index 0000000..ba7f77a
--- /dev/null
@@ -0,0 +1,5 @@
+void f (void) {
+  unsigned int x0 = 0x9423U;
+  unsigned long int x1 = 0x9423UL;
+
+}
diff --git a/test/tests2.5/ull.c b/test/tests2.5/ull.c
new file mode 100644 (file)
index 0000000..c81f1e3
--- /dev/null
@@ -0,0 +1,7 @@
+typedef unsigned long long pan_unit64_t;
+
+void f () 
+{
+  /*@unused@*/ unsigned long long put = 0xFFFFFULL;
+  /*@unused@*/ pan_unit64_t pt = 0xFFFFFFFFFFFFFULL;
+}
diff --git a/test/tests2.5/ull.c~ b/test/tests2.5/ull.c~
new file mode 100644 (file)
index 0000000..7f4295f
--- /dev/null
@@ -0,0 +1,8 @@
+typedef unsigned long long pan_unit64_t;
+
+void f () 
+{
+  unsigned long long put = 0xFFFFFULL;
+  pan_unit64_t pt = 0xFFFFFFFFFFFFFULL;
+  pt++;
+}
This page took 0.673435 seconds and 5 git commands to generate.