4 employee.c: (in function employee_equal)
5 employee.c:25: Function strncmp expects arg 3 to be size_t gets int:
7 empset.c: (in function empset_insert)
8 empset.c:28: Variable er declared but not used
9 empset.c: (in function empset_disjointUnion)
10 empset.c:85: Undocumented modification of s1 possible from call to
11 erc_iterStart (through alias s2): erc_iterStart(s2)
12 empset.c:85: Undocumented modification of s2 possible from call to
13 erc_iterStart: erc_iterStart(s2)
14 empset.c: (in function empset_union)
15 empset.c:108: Undocumented modification of s2 possible from call to
16 erc_iterStart (through alias s1): erc_iterStart(s1)
17 empset.c:108: Undocumented modification of s1 possible from call to
18 erc_iterStart: erc_iterStart(s1)
19 empset.c: (in function empset_subset)
20 empset.c:139: Undocumented modification of s1 possible from call to
21 erc_iterStart: erc_iterStart(s1)
22 empset.c:135: Variable e declared but not used
23 ereftab.c: (in function ereftab_lookup)
24 ereftab.c:34: Undocumented modification of t possible from call to
25 erc_iterStart: erc_iterStart(t)
26 erc.c: (in function erc_member)
27 erc.c:47: Operands of == are abstract type (eref): tmpc->val == er
28 erc.c: (in function erc_delete)
29 erc.c:78: Operands of == are abstract type (eref): elem->val == er
30 erc.c: (in function erc_sprint)
31 erc.c:141: Function malloc expects arg 1 to be size_t gets int:
32 erc_size(c) * (employeePrintSize + 1) + 1
33 erc.c:151: Undocumented modification of c possible from call to erc_iterStart:
35 dbase.c: (in function query)
36 dbase.c:210: Variable er declared but not used
37 dbase.c:211: Variable e declared but not used
38 drive.c: (in function main)
39 drive.c:123: Return value (type db_status) ignored: hire(e)
41 Finished LCLint checking --- 16 code errors found, as expected
43 employee.h:2: Name EMPLOYEE_H is reserved for future ANSI library extensions.
44 Macros beginning with E and a digit or uppercase letter may be added to
45 <errno.h>. (See ANSI, Section 4.13.1)
46 eref.h:2: Name EREF_H is reserved for future ANSI library extensions. Macros
47 beginning with E and a digit or uppercase letter may be added to <errno.h>.
48 (See ANSI, Section 4.13.1)
49 empset.h:2: Name EMPSET_H is reserved for future ANSI library extensions.
50 Macros beginning with E and a digit or uppercase letter may be added to
51 <errno.h>. (See ANSI, Section 4.13.1)
52 erc.h:2: Name ERC_H is reserved for future ANSI library extensions. Macros
53 beginning with E and a digit or uppercase letter may be added to <errno.h>.
54 (See ANSI, Section 4.13.1)
55 ereftab.h:4: Name EREFTAB_H is reserved for future ANSI library extensions.
56 Macros beginning with E and a digit or uppercase letter may be added to
57 <errno.h>. (See ANSI, Section 4.13.1)
58 bool.h:20: Modifies list for bool_initMod uses global internal state, not
59 included in globals list.
60 bool.h:20: Declaration of bool_initMod
61 employee.h:12: Declaration parameter has name: p_e
62 employee.c:5: Definition parameter name e does not match name of corresponding
63 parameter in declaration: p_e
64 employee.h:12: Previous declaration of p_e
65 employee.c: (in function employee_setName)
66 employee.c:12: Undefined storage e->name corresponds to storage listed in
68 employee.c:12: Body of if statement is not a block: return FALSE
69 employee.c:15: Parameter 1 (e->name) to function strcpy is declared unique but
70 may be aliased externally by parameter 2 (na)
71 employee.c: (in function employee_equal)
72 employee.c:25: Function strncmp expects arg 3 to be size_t gets int:
74 employee.c: (in function employee_sprint)
75 employee.c:30: Read-only string literal storage used as initial value for
76 unqualified storage: gender[0] = "male"
77 employee.c:30: Read-only string literal storage used as initial value for
78 unqualified storage: gender[1] = "female"
79 employee.c:30: Read-only string literal storage used as initial value for
80 unqualified storage: gender[2] = "?"
81 employee.c:31: Read-only string literal storage used as initial value for
82 unqualified storage: jobs[0] = "manager"
83 employee.c:31: Read-only string literal storage used as initial value for
84 unqualified storage: jobs[1] = "non-manager"
85 employee.c:31: Read-only string literal storage used as initial value for
86 unqualified storage: jobs[2] = "?"
87 employee.c:34: Array fetch using non-integer, gender: gender[e.gen]
88 employee.c:34: Array fetch using non-integer, job: jobs[e.j]
89 employee.h: (in macro employee_initMod)
90 employee.h:14: Called procedure bool_initMod may access internal state, but
91 globals list does not include globals internalState
92 employee.h:14: Undocumented modification of internal state possible from call
93 to bool_initMod: bool_initMod()
94 eref.h:9: Constant exported, but not specified: used
95 eref.h:9: Constant exported, but not specified: avail
96 eref.h:9: Type exported, but not specified: eref_status
97 eref.h:14: Type exported, but not specified: eref_ERP
98 eref.h:17: Variable exported, but not specified: eref_Pool
99 eref.c: (in function eref_alloc)
100 eref.c:12: Undocumented use of global eref_Pool
101 eref.c:12: Undocumented use of global eref_Pool
102 eref.c:12: Body of for statement is empty
103 eref.c:12: Undocumented use of global eref_Pool (in post loop test)
104 eref.c:16: Undocumented use of global eref_Pool
105 eref.c:18: Undocumented use of global eref_Pool
106 eref.c:19: Undocumented use of global eref_Pool
107 eref.c:20: Undocumented use of global eref_Pool
108 eref.c:20: Parameter to sizeof is type employee: sizeof(employee)
109 eref.c:19: Undocumented modification of *(eref_Pool.conts) possible from call
110 to realloc: realloc(eref_Pool.conts, 2 * eref_Pool.size * sizeof(employee))
111 eref.c:18: Undocumented modification of eref_Pool.conts:
112 eref_Pool.conts = (employee *)realloc(eref_Pool.conts, 2 * eref_Pool.size *
114 eref.c:22: Undocumented use of global eref_Pool
115 eref.c:25: Argument to exit has implementation defined behavior: 1
116 eref.c:28: Undocumented use of global eref_Pool
117 eref.c:29: Undocumented use of global eref_Pool
118 eref.c:30: Undocumented use of global eref_Pool
119 eref.c:30: Parameter to sizeof is type eref_status: sizeof(eref_status)
120 eref.c:29: Undocumented modification of *(eref_Pool.status) possible from call
121 to realloc: realloc(eref_Pool.status, 2 * eref_Pool.size *
123 eref.c:28: Undocumented modification of eref_Pool.status:
124 eref_Pool.status = (eref_status *)realloc(eref_Pool.status, 2 *
125 eref_Pool.size * sizeof(eref_status))
126 eref.c:32: Undocumented use of global eref_Pool
127 eref.c:35: Argument to exit has implementation defined behavior: 1
128 eref.c:38: Undocumented use of global eref_Pool
129 eref.c:38: Undocumented use of global eref_Pool
130 eref.c:38: Undocumented modification of eref_Pool.size:
131 eref_Pool.size = 2 * eref_Pool.size
132 eref.c:40: Undocumented use of global eref_Pool
133 eref.c:41: Undocumented use of global eref_Pool
134 eref.c:41: Undocumented modification of eref_Pool.status[]:
135 eref_Pool.status[i] = avail
136 eref.c:41: Body of for statement is not a block: eref_Pool.status[i] = avail
137 eref.c:41: Undocumented use of global eref_Pool (in post loop test)
138 eref.c:44: Undocumented use of global eref_Pool
139 eref.c:44: Undocumented modification of eref_Pool.status[]:
140 eref_Pool.status[res] = used
141 eref.c: (in function eref_initMod)
142 eref.c:53: Undocumented use of file static needsInit
143 eref.c:58: Undocumented use of file static needsInit
144 eref.c:58: Undocumented modification of needsInit: needsInit = FALSE
145 eref.c:60: Statement has no effect: employee_initMod()
146 eref.c:62: Undocumented use of global eref_Pool
147 eref.c:62: Parameter to sizeof is type employee: sizeof(employee)
148 eref.c:62: Undocumented modification of eref_Pool.conts:
149 eref_Pool.conts = (employee *)malloc(size * sizeof(employee))
150 eref.c:62: Implicitly only storage eref_Pool.conts (type employee *) not
151 released before assignment: eref_Pool.conts = (employee *)malloc(size *
153 eref.c:64: Undocumented use of global eref_Pool
154 eref.c:67: Argument to exit has implementation defined behavior: 1
155 eref.c:70: Undocumented use of global eref_Pool
156 eref.c:70: Parameter to sizeof is type eref_status: sizeof(eref_status)
157 eref.c:70: Undocumented modification of eref_Pool.status:
158 eref_Pool.status = (eref_status *)malloc(size * sizeof(eref_status))
159 eref.c:70: Implicitly only storage eref_Pool.status (type eref_status *) not
160 released before assignment: eref_Pool.status = (eref_status *)malloc(size *
162 eref.c:72: Undocumented use of global eref_Pool
163 eref.c:75: Argument to exit has implementation defined behavior: 1
164 eref.c:78: Undocumented use of global eref_Pool
165 eref.c:78: Undocumented modification of eref_Pool.size: eref_Pool.size = size
166 eref.c:82: Undocumented use of global eref_Pool
167 eref.c:82: Undocumented modification of eref_Pool.status[]:
168 eref_Pool.status[i] = avail
169 eref.c:84: Global storage *(eref_Pool.conts) contains 5 undefined fields when
170 call returns: ssNum, name, salary, gen, j
171 eref.c:84: Global storage eref_Pool contains 1 undefined field when call
173 eref.h: (in macro eref_free)
174 eref.h:23: Undocumented use of global eref_Pool
175 eref.h:23: Undocumented modification of eref_Pool.status[]:
176 eref_Pool.status[er] = avail
177 eref.h: (in macro eref_assign)
178 eref.h:24: Undocumented use of global eref_Pool
179 eref.h:24: Macro parameter used without parentheses: e
180 eref.h:24: Undocumented modification of eref_Pool.conts[]:
181 eref_Pool.conts[er] = e
182 eref.h: (in macro eref_get)
183 eref.h:25: Undocumented use of global eref_Pool
184 eref.h: (in macro eref_equal)
185 eref.h:26: Macro parameter used without parentheses: er1
186 eref.h:26: Macro parameter used without parentheses: er2
187 erc.h:6: Name _elem is in the implementation name space (any identifier
188 beginning with underscore)
189 erc.h:6: Type exported, but not specified: ercElem
190 erc.h:7: Type exported, but not specified: ercList
191 erc.h:8: Type exported, but not specified: ercInfo
192 empset.h:10: Variable exported, but not specified: known
193 empset.c:5: Name _empset_get is in the implementation name space (any
194 identifier beginning with underscore)
195 empset.c: (in function _empset_get)
196 empset.c:11: Undocumented modification of s possible from call to
197 erc_iterStart: erc_iterStart(s)
198 empset.c:15: Body of if statement is not a block:
199 do { { erc_iterFinal(it) } } while (FALSE)
200 empset.c: (in function empset_insert)
201 empset.c:30: Undetected modification possible from call to unconstrained
202 function _empset_get: _empset_get
203 empset.c:28: Variable er declared but not used
204 empset.c: (in function empset_insertUnique)
205 empset.c:43: Undocumented use of global known
206 empset.c:49: Undocumented use of global known
207 empset.c:49: Undocumented modification of known possible from call to
208 ereftab_insert: ereftab_insert(known, e, er)
209 empset.c: (in function empset_delete)
210 empset.c:59: Undetected modification possible from call to unconstrained
211 function _empset_get: _empset_get
212 empset.c: (in function empset_disjointUnion)
213 empset.c:85: Undocumented modification of s1 possible from call to
214 erc_iterStart (through alias s2): erc_iterStart(s2)
215 empset.c:85: Undocumented modification of s2 possible from call to
216 erc_iterStart: erc_iterStart(s2)
217 empset.c:86: Body of for statement is not a block:
218 empset_insertUnique(result, eref_get(er))
219 empset.c: (in function empset_union)
220 empset.c:108: Undocumented modification of s2 possible from call to
221 erc_iterStart (through alias s1): erc_iterStart(s1)
222 empset.c:108: Undocumented modification of s1 possible from call to
223 erc_iterStart: erc_iterStart(s1)
224 empset.c:110: Body of if statement is not a block: erc_insert(result, er)
225 empset.c:109: Body of for statement is not a block:
226 if (!empset_member(eref_get(er), s2)) erc_insert(result, er)
227 empset.c: (in function empset_intersect)
228 empset.c:125: Body of if statement is not a block: erc_insert(toDelete, er)
229 empset.c:124: Body of for statement is not a block:
230 if (!empset_member(eref_get(er), s2)) erc_insert(toDelete, er)
231 empset.c:128: Return value (type bool) ignored: erc_delete(s1, er)
232 empset.c:128: Body of for statement is not a block: erc_delete(s1, er)
233 empset.c: (in function empset_subset)
234 empset.c:139: Undocumented modification of s1 possible from call to
235 erc_iterStart: erc_iterStart(s1)
236 empset.c:141: Body of if statement is not a block:
237 do { { erc_iterFinal(it) } } while (FALSE)
238 empset.c:140: Body of for statement is not a block:
239 if (!empset_member(eref_get(er), s2)) do { { erc_iterFinal(it)
241 empset.c:135: Variable e declared but not used
242 empset.c: (in function empset_initMod)
243 empset.c:148: Undocumented use of file static initDone
244 empset.c:148: Body of if statement is not a block: return
245 empset.c:151: Statement has no effect: employee_initMod()
246 empset.c:153: Statement has no effect: erc_initMod()
247 empset.c:154: Statement has no effect: ereftab_initMod()
248 empset.c:155: Undocumented use of global known
249 empset.c:155: Undocumented modification of known: known = ereftab_create()
250 empset.c:156: Undocumented use of file static initDone
251 empset.c:156: Undocumented modification of initDone: initDone = TRUE
252 empset.h: (in macro empset_member)
253 empset.h:30: Undetected modification possible from call to unconstrained
254 function _empset_get: _empset_get
255 ereftab.c: (in function ereftab_delete)
256 ereftab.c:24: Return value (type bool) ignored: erc_delete(t, er)
257 ereftab.c: (in function ereftab_lookup)
258 ereftab.c:34: Undocumented modification of t possible from call to
259 erc_iterStart: erc_iterStart(t)
260 ereftab.c:37: Body of if statement is not a block: return er
261 ereftab.c: (in function ereftab_initMod)
262 ereftab.c:47: Statement has no effect: erc_initMod()
263 erc.c: (in function erc_create)
264 erc.c:8: Parameter to sizeof is type ercInfo: sizeof(ercInfo)
265 erc.c:13: Argument to exit has implementation defined behavior: 1
266 erc.c:18: Null storage c->vals derivable from return value: c
267 erc.c:16: Storage c->vals becomes null
268 erc.c:18: Fresh storage returned as unqualified (should be only): c
269 erc.c:8: Fresh storage c allocated
270 erc.c: (in function erc_clear)
271 erc.c:34: Function returns with null storage derivable from parameter c->vals
272 erc.c:32: Storage c->vals becomes null
273 erc.c: (in function erc_final)
274 erc.c:39: Implicitly temp storage c passed as only param: free (c)
275 erc.c: (in function erc_member)
276 erc.c:47: Operands of == are abstract type (eref): tmpc->val == er
277 erc.c:47: Body of if statement is not a block: return TRUE
278 erc.c:47: Body of for statement is not a block:
279 if (tmpc->val == er) return TRUE
280 erc.c: (in function erc_insert)
281 erc.c:55: Parameter to sizeof is type ercElem: sizeof(ercElem)
282 erc.c:60: Argument to exit has implementation defined behavior: 1
283 erc.c: (in function erc_delete)
284 erc.c:78: Operands of == are abstract type (eref): elem->val == er
285 erc.c:83: Implicitly only storage prev->next (type struct _elem *) not released
286 before assignment: prev->next = elem->next
287 erc.c:84: Clauses exit with elem referencing implicitly only storage in true
288 branch, local storage in false branch
289 erc.c:81: Storage elem becomes implicitly only
290 erc.c:87: Released storage c->vals reachable from parameter at return point
291 erc.c:85: Storage c->vals is released
292 erc.c: (in function erc_iterStart)
293 erc.c:98: Parameter to sizeof is type ercList: sizeof(ercList)
294 erc.c:103: Argument to exit has implementation defined behavior: 1
295 erc.c:107: Fresh storage returned as unqualified (should be only): result
296 erc.c:98: Fresh storage result allocated
297 erc.c:108: Suspect object listed in modifies of erc_iterStart not modified: c
298 erc.lcl:49: Specification of erc_iterStart
299 erc.c: (in function erc_yield)
300 erc.c:117: Implicitly temp storage it passed as only param: free (it)
301 erc.c:117: Unreachable code: free(it)
302 erc.c:118: Variable it is released in true branch, but live in continuation.
303 erc.c:117: Storage it is released
304 erc.c:121: Only storage *it->next assigned to unqualified: *(it) = (*it)->next
305 erc.c: (in function erc_join)
306 erc.c:130: Body of for statement is not a block: erc_insert(c1, tmpc->val)
307 erc.c: (in function erc_sprint)
308 erc.c:141: Function malloc expects arg 1 to be size_t gets int:
309 erc_size(c) * (employeePrintSize + 1) + 1
310 erc.c:146: Argument to exit has implementation defined behavior: 1
311 erc.c:151: Undocumented modification of c possible from call to erc_iterStart:
313 erc.c:159: Fresh storage returned as unqualified (should be only): result
314 erc.c:140: Fresh storage result allocated
315 erc.h: (in macro erc_choose)
316 erc.h:15: Macro parameter used without parentheses: c
317 erc.h: (in macro erc_initMod)
318 erc.h:16: Called procedure bool_initMod may access internal state, but globals
319 list does not include globals internalState
320 erc.h:16: Undocumented modification of internal state possible from call to
321 bool_initMod: bool_initMod()
322 erc.h:16: Statement has no effect: employee_initMod()
323 erc.h: (in macro erc_iterFinal)
324 erc.h:20: Only storage *it->next (type struct _elem *) derived from released
325 storage is not released (memory leak): it
326 erc.h:20: Implicitly temp storage it passed as only param: free (it)
327 dbase.c: (in function db_initMod)
328 dbase.c:21: Undocumented use of global initDone
329 dbase.c:27: Statement has no effect: employee_initMod()
330 dbase.c:29: Statement has no effect: erc_initMod()
331 dbase.c:30: Statement has no effect: empset_initMod()
332 dbase.c:32: Assignment of enum { mMGRS, fMGRS, mNON, fNON } to int: i = mMGRS
333 dbase.c:32: Operands of <= have incompatible types (int, enum { mMGRS, fMGRS,
334 mNON, fNON }): i <= fNON
335 dbase.c:34: Undocumented use of global db
336 dbase.c:34: Undocumented modification of db[]: db[i] = erc_create()
337 dbase.c:32: Incompatible types for <= (int, enum { mMGRS, fMGRS, mNON, fNON })
338 (in post loop test): i <= fNON
339 dbase.c:37: Undocumented use of global initDone
340 dbase.c:37: Undocumented modification of initDone: initDone = TRUE
341 dbase.c:40: Name _db_ercKeyGet is in the implementation name space (any
342 identifier beginning with underscore)
343 dbase.c: (in function _db_ercKeyGet)
344 dbase.c:45: Undocumented modification of c possible from call to erc_iterStart:
346 dbase.c:56: Name _db_keyGet is in the implementation name space (any identifier
347 beginning with underscore)
348 dbase.c: (in function _db_keyGet)
349 dbase.c:61: Assignment of enum { mMGRS, fMGRS, mNON, fNON } to int: i = mMGRS
350 dbase.c:61: Operands of <= have incompatible types (int, enum { mMGRS, fMGRS,
351 mNON, fNON }): i <= fNON
352 dbase.c:63: Undocumented use of global db
353 dbase.c:63: Undetected modification possible from call to unconstrained
354 function _db_ercKeyGet: _db_ercKeyGet
355 dbase.c:61: Incompatible types for <= (int, enum { mMGRS, fMGRS, mNON, fNON })
356 (in post loop test): i <= fNON
357 dbase.c:73: Name _db_addEmpls is in the implementation name space (any
358 identifier beginning with underscore)
359 dbase.c: (in function _db_addEmpls)
360 dbase.c:81: Undocumented modification of c possible from call to erc_iterStart:
362 dbase.c:86: Undocumented modification of s possible from call to empset_insert:
364 dbase.c:86: Return value (type bool) ignored: empset_insert(s, e)
365 dbase.c: (in function hire)
366 dbase.c:97: Body of if statement is not a block: return genderERR
367 dbase.c:100: Body of if statement is not a block: return jobERR
368 dbase.c:103: Body of if statement is not a block: return salERR
369 dbase.c:105: Undetected modification possible from call to unconstrained
370 function _db_keyGet: _db_keyGet
371 dbase.c:106: Body of if statement is not a block: return duplERR
372 dbase.c: (in function uncheckedHire)
373 dbase.c:121: Undocumented use of global db
374 dbase.c:121: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
376 dbase.c:121: Undocumented modification of db[] possible from call to
377 erc_insert: erc_insert(db[mMGRS], er)
378 dbase.c:123: Undocumented use of global db
379 dbase.c:123: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
381 dbase.c:123: Undocumented modification of db[] possible from call to
382 erc_insert: erc_insert(db[mNON], er)
383 dbase.c:121: Body of if clause of if statement is not a block:
384 erc_insert(db[mMGRS], er)
385 dbase.c:123: Body of else clause of if statement is not a block:
386 erc_insert(db[mNON], er)
387 dbase.c:126: Undocumented use of global db
388 dbase.c:126: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
390 dbase.c:126: Undocumented modification of db[] possible from call to
391 erc_insert: erc_insert(db[fMGRS], er)
392 dbase.c:128: Undocumented use of global db
393 dbase.c:128: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
395 dbase.c:128: Undocumented modification of db[] possible from call to
396 erc_insert: erc_insert(db[fNON], er)
397 dbase.c:126: Body of if clause of if statement is not a block:
398 erc_insert(db[fMGRS], er)
399 dbase.c:128: Body of else clause of if statement is not a block:
400 erc_insert(db[fNON], er)
401 dbase.c:123: Body of if clause of if statement is not a block:
402 if (e.j == MGR) erc_insert(db[mMGRS], er) else erc_insert(db[mNON], er)
403 dbase.c: (in function fire)
404 dbase.c:137: Assignment of enum { mMGRS, fMGRS, mNON, fNON } to int: i = mMGRS
405 dbase.c:137: Operands of <= have incompatible types (int, enum { mMGRS, fMGRS,
406 mNON, fNON }): i <= fNON
407 dbase.c:138: Undocumented use of global db
408 dbase.c:138: Undocumented modification of db[] possible from call to
409 erc_iterStart: erc_iterStart(db[i])
410 dbase.c:142: Undocumented use of global db
411 dbase.c:142: Undocumented modification of db[] possible from call to
412 erc_delete: erc_delete(db[i], er)
413 dbase.c:142: Return value (type bool) ignored: erc_delete(db[i]...
414 dbase.c:139: Body of for statement is not a block:
415 if (eref_get(er).ssNum == ssNum) { erc_iterFinal(it) }
416 dbase.c:139: Body of for statement is not a block:
417 for (er = erc_yield(it = erc_iterStart(db[i])); !eref_equal(er, erefNIL);
418 er = erc_yield(it)) if (eref_get(er).ssNum == ssNum) { erc_iterFinal(it) }
419 dbase.c:137: Incompatible types for <= (int, enum { mMGRS, fMGRS, mNON, fNON })
420 (in post loop test): i <= fNON
421 dbase.c: (in function promote)
422 dbase.c:156: Undocumented use of global db
423 dbase.c:156: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
425 dbase.c:156: Undetected modification possible from call to unconstrained
426 function _db_ercKeyGet: _db_ercKeyGet
427 dbase.c:160: Undocumented use of global db
428 dbase.c:160: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
430 dbase.c:160: Undetected modification possible from call to unconstrained
431 function _db_ercKeyGet: _db_ercKeyGet
432 dbase.c:162: Body of if statement is not a block: return FALSE
433 dbase.c:172: Undocumented use of global db
434 dbase.c:172: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
436 dbase.c:172: Undocumented modification of db[] possible from call to
437 erc_delete: erc_delete(db[mNON], er)
438 dbase.c:172: Return value (type bool) ignored: erc_delete(db[mN...
439 dbase.c:173: Undocumented use of global db
440 dbase.c:173: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
442 dbase.c:173: Undocumented modification of db[] possible from call to
443 erc_insert: erc_insert(db[mMGRS], er)
444 dbase.c:177: Undocumented use of global db
445 dbase.c:177: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
447 dbase.c:177: Undocumented modification of db[] possible from call to
448 erc_delete: erc_delete(db[fNON], er)
449 dbase.c:177: Return value (type bool) ignored: erc_delete(db[fN...
450 dbase.c:178: Undocumented use of global db
451 dbase.c:178: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
453 dbase.c:178: Undocumented modification of db[] possible from call to
454 erc_insert: erc_insert(db[fMGRS], er)
455 dbase.c: (in function setSalary)
456 dbase.c:194: Undetected modification possible from call to unconstrained
457 function _db_keyGet: _db_keyGet
458 dbase.c: (in function query)
459 dbase.c:226: Assignment of enum { mMGRS, fMGRS, mNON, fNON } to int: i = mMGRS
460 dbase.c:226: Operands of <= have incompatible types (int, enum { mMGRS, fMGRS,
461 mNON, fNON }): i <= fNON
462 dbase.c:227: Undocumented use of global db
463 dbase.c:227: Undetected modification possible from call to unconstrained
464 function _db_addEmpls: _db_addEmpls
465 dbase.c:227: Body of for statement is not a block:
466 numAdded += _db_addEmpls(db[i], l, h, s)
467 dbase.c:226: Incompatible types for <= (int, enum { mMGRS, fMGRS, mNON, fNON })
468 (in post loop test): i <= fNON
469 dbase.c:230: Undocumented use of global db
470 dbase.c:230: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
472 dbase.c:230: Undetected modification possible from call to unconstrained
473 function _db_addEmpls: _db_addEmpls
474 dbase.c:231: Undocumented use of global db
475 dbase.c:231: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
477 dbase.c:231: Undetected modification possible from call to unconstrained
478 function _db_addEmpls: _db_addEmpls
479 dbase.c:234: Undocumented use of global db
480 dbase.c:234: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
482 dbase.c:234: Undetected modification possible from call to unconstrained
483 function _db_addEmpls: _db_addEmpls
484 dbase.c:235: Undocumented use of global db
485 dbase.c:235: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
487 dbase.c:235: Undetected modification possible from call to unconstrained
488 function _db_addEmpls: _db_addEmpls
489 dbase.c:242: Undocumented use of global db
490 dbase.c:242: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
492 dbase.c:242: Undetected modification possible from call to unconstrained
493 function _db_addEmpls: _db_addEmpls
494 dbase.c:243: Undocumented use of global db
495 dbase.c:243: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
497 dbase.c:243: Undetected modification possible from call to unconstrained
498 function _db_addEmpls: _db_addEmpls
499 dbase.c:246: Undocumented use of global db
500 dbase.c:246: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
502 dbase.c:246: Undetected modification possible from call to unconstrained
503 function _db_addEmpls: _db_addEmpls
504 dbase.c:248: Undocumented use of global db
505 dbase.c:248: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
507 dbase.c:248: Undetected modification possible from call to unconstrained
508 function _db_addEmpls: _db_addEmpls
509 dbase.c:254: Undocumented use of global db
510 dbase.c:254: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
512 dbase.c:254: Undetected modification possible from call to unconstrained
513 function _db_addEmpls: _db_addEmpls
514 dbase.c:255: Undocumented use of global db
515 dbase.c:255: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
517 dbase.c:255: Undetected modification possible from call to unconstrained
518 function _db_addEmpls: _db_addEmpls
519 dbase.c:258: Undocumented use of global db
520 dbase.c:258: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
522 dbase.c:258: Undetected modification possible from call to unconstrained
523 function _db_addEmpls: _db_addEmpls
524 dbase.c:260: Undocumented use of global db
525 dbase.c:260: Array fetch using non-integer, enum { mMGRS, fMGRS, mNON, fNON }:
527 dbase.c:260: Undetected modification possible from call to unconstrained
528 function _db_addEmpls: _db_addEmpls
529 dbase.c:210: Variable er declared but not used
530 dbase.c:211: Variable e declared but not used
531 dbase.c:263: Suspect object listed in modifies of query not modified: s
532 dbase.lcl:49: Specification of query
533 dbase.c: (in function db_print)
534 dbase.c:272: Assignment of enum { mMGRS, fMGRS, mNON, fNON } to int: i = mMGRS
535 dbase.c:272: Operands of <= have incompatible types (int, enum { mMGRS, fMGRS,
536 mNON, fNON }): i <= fNON
537 dbase.c:274: Undocumented use of global db
538 dbase.c:272: Incompatible types for <= (int, enum { mMGRS, fMGRS, mNON, fNON })
539 (in post loop test): i <= fNON
540 drive.c: (in function main)
541 drive.c:22: Statement has no effect: employee_initMod()
542 drive.c:23: Statement has no effect: empset_initMod()
543 drive.c:48: Return value (type bool) ignored: employee_setName...
544 drive.c:49: Return value (type bool) ignored: empset_insert(em...
545 drive.c:64: Return value (type bool) ignored: employee_setName...
546 drive.c:65: Return value (type bool) ignored: empset_delete(em...
547 drive.c:82: Return value (type bool) ignored: employee_setName...
548 drive.c:83: Return value (type bool) ignored: empset_insert(em...
549 drive.c:107: Return value (type bool) ignored: empset_delete(em...
550 drive.c:116: Body of if clause of if statement is not a block: e.gen = MALE
551 drive.c:116: Body of else clause of if statement is not a block: e.gen = FEMALE
552 drive.c:117: Body of if clause of if statement is not a block: e.j = NONMGR
553 drive.c:117: Body of else clause of if statement is not a block: e.j = MGR
554 drive.c:119: Return value (type bool) ignored: employee_setName...
555 drive.c:123: Return value (type db_status) ignored: hire(e)
556 drive.c:127: Assignment of db_status to int: j = hire(e)
557 drive.c:131: Variable j used before definition
558 drive.c:134: Return value (type bool) ignored: fire(17)
559 drive.c:158: Return value (type bool) ignored: fire(empset_choo...
560 drive.c:11: Parameter argv not used
561 dbase.c:11: Type employeeKinds declared but not used
562 eref.lh:8: Function exported but not used outside eref: eref_free
563 eref.h:23: Definition of eref_free
564 empset.lh:8: Function exported but not used outside empset: empset_final
565 empset.h:29: Definition of empset_final
566 empset.lh:9: Function exported but not used outside empset: empset_clear
567 empset.c:24: Definition of empset_clear
568 empset.lh:11: Function exported but not used outside empset:
570 empset.c:53: Definition of empset_insertUnique
571 empset.lh:17: Function exported but not used outside empset: empset_member
572 empset.h:30: Definition of empset_member
573 empset.lh:18: Function exported but not used outside empset: empset_subset
574 empset.c:144: Definition of empset_subset
575 ereftab.lh:10: Function exported but not used outside ereftab: ereftab_delete
576 ereftab.c:26: Definition of ereftab_delete
577 dbase.c:13: Variable exported but not used outside dbase: db
578 dbase.lh:27: Function exported but not used outside dbase: promote
579 dbase.c:182: Definition of promote
580 dbase.lh:28: Function exported but not used outside dbase: setSalary
581 dbase.c:206: Definition of setSalary
582 empset.h:10: Variable exported but not used outside empset: known
583 dbase.c:15: Variable exported but not used outside dbase: initDone
584 dbase.c:40: Function exported but not used outside dbase: _db_ercKeyGet
585 dbase.c:54: Definition of _db_ercKeyGet
586 dbase.c:56: Function exported but not used outside dbase: _db_keyGet
587 dbase.c:71: Definition of _db_keyGet
588 dbase.c:73: Function exported but not used outside dbase: _db_addEmpls
589 dbase.c:92: Definition of _db_addEmpls
590 dbase.c:13: Variable db exported but not declared in header file
591 empset.c:5: Function _empset_get exported but not declared in header file
592 empset.c:19: Definition of _empset_get
593 dbase.c:15: Variable initDone exported but not declared in header file
594 dbase.c:40: Function _db_ercKeyGet exported but not declared in header file
595 dbase.c:54: Definition of _db_ercKeyGet
596 dbase.c:56: Function _db_keyGet exported but not declared in header file
597 dbase.c:71: Definition of _db_keyGet
598 dbase.c:73: Function _db_addEmpls exported but not declared in header file
599 dbase.c:92: Definition of _db_addEmpls
601 Error Type Reported Suppressed
602 =================== ======== =========
657 Finished LCLint checking --- 333 code errors found, as expected