< 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_alloc) eref.c:19: Unqualified storage eref_Pool.conts passed as only param: realloc (eref_Pool.conts, ...) eref.c:29: Unqualified storage eref_Pool.status passed as only param: 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:45: Storage eref_Pool.conts reachable from global is only (should be unqualified) eref.c:20: 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:84: Storage eref_Pool.status reachable from global is fresh (should be unqualified) eref.c:70: Fresh storage eref_Pool.status allocated 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: (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:102: Released storage c->vals reachable from parameter at return point erc.c:100: Storage c->vals is 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 > 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