-< 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
+employee.c:17: 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_alloc)
eref.c:19: Unqualified storage eref_Pool.conts passed as only param:
realloc (eref_Pool.conts, ...)
realloc (eref_Pool.status, ...)
eref.c:45: Storage eref_Pool.status reachable from global is only (should be
unqualified)
- eref.c:30: Storage eref_Pool.status becomes only
+ eref.c:29: Storage eref_Pool.status becomes only
eref.c:45: Storage eref_Pool.conts reachable from global is only (should be
unqualified)
- eref.c:20: Storage eref_Pool.conts becomes only
+ eref.c:19: Storage eref_Pool.conts becomes only
eref.c: (in function eref_initMod)
eref.c:84: Storage eref_Pool.conts reachable from global is fresh (should be
unqualified)
- eref.c:62: Fresh storage eref_Pool.conts allocated
-eref.c:84: Global storage *(eref_Pool.conts) contains 4 undefined fields when
- call returns: ssNum, salary, gen, j
+ eref.c:62: Fresh storage eref_Pool.conts created
+eref.c:84: Global storage *(eref_Pool.conts) contains 5 undefined fields when
+ call returns: ssNum, name, salary, gen, j
eref.c:84: Storage eref_Pool.status reachable from global is fresh (should be
unqualified)
- eref.c:70: Fresh storage eref_Pool.status allocated
+ eref.c:70: Fresh storage eref_Pool.status created
eref.c:84: Global storage eref_Pool contains 1 undefined field when call
returns: status
-< checking empset.c >
-< 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:33: Fresh storage returned as unqualified (should be only): c
- erc.c:23: Fresh storage c allocated
+ erc.c:23: Fresh storage c created
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:54: Implicitly temp storage c passed as only param: free (c)
erc.c: (in function erc_delete)
erc.c:102: Released storage c->vals reachable from parameter at return point
- erc.c:100: Storage c->vals is released
+ erc.c:100: Storage c->vals released
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
-< checking dbase.c >
-< checking drive.c >
-< checking macros bool.h >
-< global checks >
+ erc.c:122: Fresh storage result created
-Finished LCLint checking --- 15 code errors found, as expected
+Finished checking --- 15 code warnings, 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
+employee.c:17: 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 *
+eref.c:62: Implicitly only storage eref_Pool.conts (type employee *) not
+ released before assignment: eref_Pool.conts = (employee *)malloc(size *
+ sizeof(employee))
+eref.c:70: Implicitly only storage eref_Pool.status (type eref_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.conts) contains 5 undefined fields when
+ call returns: ssNum, name, 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 >
+ empset.c:112: Fresh storage toDelete created
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_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: Implicitly only storage prev->next (type struct _elem *) 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:96: Storage elem becomes implicitly only (through alias c->vals)
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 >
+ erc.c:100: Storage c->vals released
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_"
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:
+drive.c:140: Fresh storage em1 (type empset) not released before assignment:
em1 = empset_create()
- drive.c:35: Fresh storage em1 allocated
-drive.c:146: Fresh storage em2 not released before assignment:
+ drive.c:35: Fresh storage em1 created
+drive.c:146: Fresh storage em2 (type empset) not released before assignment:
em2 = empset_create()
- drive.c:74: Fresh storage em2 allocated
-drive.c:147: Fresh storage em3 not released before assignment:
+ drive.c:74: Fresh storage em2 created
+drive.c:147: Fresh storage em3 (type empset) not released before assignment:
em3 = empset_disjointUnion(em2, em1)
- drive.c:87: Fresh storage em3 allocated
+ drive.c:87: Fresh storage em3 created
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:140: Fresh storage em1 created
drive.c:163: Fresh storage em2 not released before return
- drive.c:146: Fresh storage em2 allocated
+ drive.c:146: Fresh storage em2 created
drive.c:163: Fresh storage em3 not released before return
- drive.c:147: Fresh storage em3 allocated
-< checking macros bool.h >
-< global checks >
+ drive.c:147: Fresh storage em3 created
-Finished LCLint checking --- 28 code errors found, as expected
+Finished checking --- 25 code warnings, 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
+Finished checking --- no warnings