1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
|
< 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
|