gmake[2]: Entering directory `/u/evs/lclint/web/samples/db/memchecks2' lclint +lh -allimponly -macrovarprefixexclude +showscan +stats employee eref empset ereftab erc dbase drive.c LCLint 2.1a --- 18 Apr 96 < 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 > eref.c: (in function eref_initMod) eref.c:70,3: Only storage eref_Pool.status not released before assignment: eref_Pool.status = (eref_status *)malloc(size * sizeof(eref_status)) A memory leak has been detected. Newly-allocated or only-qualified storage is not released before the last reference to is it lost. Use -mustfree to suppress message. < checking empset.c > empset.c: (in function empset_disjointUnion) empset.c:83,10: Fresh storage returned as unqualified (should be only): result Fresh storage (newly allocated in this function) is transferred in a way that the obligation to release storage is not propagated. Use the /*@only@*/ annotation to indicate the a return value is the only reference to the returned storage. Use -freshtrans to suppress message. empset.c:67,3: Fresh storage result allocated empset.c: (in function empset_union) empset.c:107,10: Fresh storage returned as unqualified (should be only): result empset.c:91,3: Fresh storage result allocated empset.h: (in macro empset_create) empset.h:28,27: Only storage returned as unqualified: (erc_create()) The only reference to this storage is transferred to another reference (e.g., by returning it) that does not have the only annotation. This may lead to a memory leak, since the new reference is not necessarily released. Use -onlytrans to suppress message. empset.h: (in macro empset_final) empset.h:29,37: Implicitly temp storage s passed as only param: erc_final (s) Temp storage (associated with a formal parameter) is transferred to a non-temporary reference. The storage may be released or new aliases created. Use -temptrans to suppress message. empset.h: (in macro empset_sprint) empset.h:34,28: Only storage returned as unqualified: (erc_sprint(es)) < checking ereftab.c > ereftab.c: (in function ereftab_create) ereftab.c:10,10: Only storage returned as unqualified: erc_create() < checking erc.c > erc.c: (in function erc_insert) erc.c:88,2: Function returns with possibly null storage derivable from parameter c->vals->next A possibly null pointer is dereferenced or misused. Value is either the result of a function which may return null (in which case, code should check it is not null), or a global, parameter or structure field declared with the null qualifier. Use -null to suppress message. erc.c:85,19: Storage c->vals->next may become null erc.h: (in macro erc_choose) erc.h:15,25: Arrow access from possibly null pointer c->vals: ((c)->vals)->val erc.h: (in iter erc_elements) erc.h:20,141: Arrow access from possibly null pointer m_ec: m_ec->val erc.h:20,66: Storage m_ec may become null < checking dbase.c > < checking drive.c > < checking macros bool.h > < global checks > < cleaning ......... > Finished LCLint checking --- 10 code errors found 392 spec, 3027 source (1219 before pre-processing) lines in 4.25 s. gmake[2]: Leaving directory `/u/evs/lclint/web/samples/db/memchecks2'