list.c.077i.pure-const 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536
  1. local analysis of uxListRemove
  2. scanning: pxList_9 = pxItemToRemove_8(D)->pvContainer;
  3. Indirect ref read is not const
  4. scanning: _1 = pxItemToRemove_8(D)->pxNext;
  5. Indirect ref read is not const
  6. scanning: _2 = pxItemToRemove_8(D)->pxPrevious;
  7. Indirect ref read is not const
  8. scanning: _1->pxPrevious = _2;
  9. Indirect ref write is not const/pure
  10. scanning: _2->pxNext = _1;
  11. Indirect ref write is not const/pure
  12. scanning: _3 = pxList_9->pxIndex;
  13. Indirect ref read is not const
  14. scanning: if (_3 == pxItemToRemove_8(D))
  15. scanning: pxList_9->pxIndex = _2;
  16. Indirect ref write is not const/pure
  17. scanning: pxItemToRemove_8(D)->pvContainer = 0B;
  18. Indirect ref write is not const/pure
  19. scanning: _4 ={v} pxList_9->uxNumberOfItems;
  20. Volatile stmt is not const/pure
  21. Indirect ref read is not const
  22. scanning: _5 = _4 + 4294967295;
  23. scanning: pxList_9->uxNumberOfItems ={v} _5;
  24. Volatile stmt is not const/pure
  25. Indirect ref write is not const/pure
  26. scanning: _15 ={v} pxList_9->uxNumberOfItems;
  27. Volatile stmt is not const/pure
  28. Indirect ref read is not const
  29. scanning: return _15;
  30. local analysis of vListInsert
  31. scanning: xValueOfInsertion_10 = pxNewListItem_9(D)->xItemValue;
  32. Indirect ref read is not const
  33. scanning: if (xValueOfInsertion_10 == 4294967295)
  34. scanning: pxIterator_13 = pxList_11(D)->xListEnd.pxPrevious;
  35. Indirect ref read is not const
  36. scanning: pxIterator_12 = &pxList_11(D)->xListEnd;
  37. scanning: _1 = pxIterator_6->pxNext;
  38. Indirect ref read is not const
  39. scanning: _2 = _1->xItemValue;
  40. Indirect ref read is not const
  41. scanning: if (_2 <= xValueOfInsertion_10)
  42. scanning: _3 = pxIterator_7->pxNext;
  43. Indirect ref read is not const
  44. scanning: pxNewListItem_9(D)->pxNext = _3;
  45. Indirect ref write is not const/pure
  46. scanning: _3->pxPrevious = pxNewListItem_9(D);
  47. Indirect ref write is not const/pure
  48. scanning: pxNewListItem_9(D)->pxPrevious = pxIterator_7;
  49. Indirect ref write is not const/pure
  50. scanning: pxIterator_7->pxNext = pxNewListItem_9(D);
  51. Indirect ref write is not const/pure
  52. scanning: pxNewListItem_9(D)->pvContainer = pxList_11(D);
  53. Indirect ref write is not const/pure
  54. scanning: _4 ={v} pxList_11(D)->uxNumberOfItems;
  55. Volatile stmt is not const/pure
  56. Indirect ref read is not const
  57. scanning: _5 = _4 + 1;
  58. scanning: pxList_11(D)->uxNumberOfItems ={v} _5;
  59. Volatile stmt is not const/pure
  60. Indirect ref write is not const/pure
  61. scanning: return;
  62. local analysis of vListInsertEnd
  63. scanning: pxIndex_7 = pxList_6(D)->pxIndex;
  64. Indirect ref read is not const
  65. scanning: pxNewListItem_8(D)->pxNext = pxIndex_7;
  66. Indirect ref write is not const/pure
  67. scanning: _1 = pxIndex_7->pxPrevious;
  68. Indirect ref read is not const
  69. scanning: pxNewListItem_8(D)->pxPrevious = _1;
  70. Indirect ref write is not const/pure
  71. scanning: _2 = pxIndex_7->pxPrevious;
  72. Indirect ref read is not const
  73. scanning: _2->pxNext = pxNewListItem_8(D);
  74. Indirect ref write is not const/pure
  75. scanning: pxIndex_7->pxPrevious = pxNewListItem_8(D);
  76. Indirect ref write is not const/pure
  77. scanning: pxNewListItem_8(D)->pvContainer = pxList_6(D);
  78. Indirect ref write is not const/pure
  79. scanning: _3 ={v} pxList_6(D)->uxNumberOfItems;
  80. Volatile stmt is not const/pure
  81. Indirect ref read is not const
  82. scanning: _4 = _3 + 1;
  83. scanning: pxList_6(D)->uxNumberOfItems ={v} _4;
  84. Volatile stmt is not const/pure
  85. Indirect ref write is not const/pure
  86. scanning: return;
  87. local analysis of vListInitialiseItem
  88. scanning: pxItem_2(D)->pvContainer = 0B;
  89. Indirect ref write is not const/pure
  90. scanning: return;
  91. local analysis of vListInitialise
  92. scanning: _1 = &pxList_2(D)->xListEnd;
  93. scanning: pxList_2(D)->pxIndex = _1;
  94. Indirect ref write is not const/pure
  95. scanning: pxList_2(D)->xListEnd.xItemValue = 4294967295;
  96. Indirect ref write is not const/pure
  97. scanning: pxList_2(D)->xListEnd.pxNext = _1;
  98. Indirect ref write is not const/pure
  99. scanning: pxList_2(D)->xListEnd.pxPrevious = _1;
  100. Indirect ref write is not const/pure
  101. scanning: pxList_2(D)->uxNumberOfItems ={v} 0;
  102. Volatile stmt is not const/pure
  103. Indirect ref write is not const/pure
  104. scanning: return;
  105. callgraph:
  106. uxListRemove/8 (uxListRemove) @05e53ee0
  107. Type: function definition analyzed
  108. Visibility: externally_visible public
  109. Aux: @05a34778
  110. References:
  111. Referring:
  112. Availability: available
  113. Function flags: count:1073741824 (estimated locally) body optimize_size
  114. Called by:
  115. Calls:
  116. vListInsert/7 (vListInsert) @05e53c40
  117. Type: function definition analyzed
  118. Visibility: externally_visible public
  119. Aux: @05a344f8
  120. References:
  121. Referring:
  122. Availability: available
  123. Function flags: count:178956970 (estimated locally) body optimize_size
  124. Called by:
  125. Calls:
  126. vListInsertEnd/6 (vListInsertEnd) @05e539a0
  127. Type: function definition analyzed
  128. Visibility: externally_visible public
  129. Aux: @05a34618
  130. References:
  131. Referring:
  132. Availability: available
  133. Function flags: count:1073741824 (estimated locally) body optimize_size
  134. Called by:
  135. Calls:
  136. vListInitialiseItem/5 (vListInitialiseItem) @05e53700
  137. Type: function definition analyzed
  138. Visibility: externally_visible public
  139. Aux: @05a34638
  140. References:
  141. Referring:
  142. Availability: available
  143. Function flags: count:1073741824 (estimated locally) body optimize_size
  144. Called by:
  145. Calls:
  146. vListInitialise/4 (vListInitialise) @05e53460
  147. Type: function definition analyzed
  148. Visibility: externally_visible public
  149. Aux: @05a347b8
  150. References:
  151. Referring:
  152. Availability: available
  153. Function flags: count:1073741824 (estimated locally) body optimize_size
  154. Called by:
  155. Calls:
  156. ordered call graph: reduced for nothrow
  157. uxListRemove/8 (uxListRemove) @05e53ee0
  158. Type: function definition analyzed
  159. Visibility: externally_visible public
  160. Aux: @05a34778
  161. References:
  162. Referring:
  163. Availability: available
  164. Function flags: count:1073741824 (estimated locally) body optimize_size
  165. Called by:
  166. Calls:
  167. vListInsert/7 (vListInsert) @05e53c40
  168. Type: function definition analyzed
  169. Visibility: externally_visible public
  170. Aux: @05a344f8
  171. References:
  172. Referring:
  173. Availability: available
  174. Function flags: count:178956970 (estimated locally) body optimize_size
  175. Called by:
  176. Calls:
  177. vListInsertEnd/6 (vListInsertEnd) @05e539a0
  178. Type: function definition analyzed
  179. Visibility: externally_visible public
  180. Aux: @05a34618
  181. References:
  182. Referring:
  183. Availability: available
  184. Function flags: count:1073741824 (estimated locally) body optimize_size
  185. Called by:
  186. Calls:
  187. vListInitialiseItem/5 (vListInitialiseItem) @05e53700
  188. Type: function definition analyzed
  189. Visibility: externally_visible public
  190. Aux: @05a34638
  191. References:
  192. Referring:
  193. Availability: available
  194. Function flags: count:1073741824 (estimated locally) body optimize_size
  195. Called by:
  196. Calls:
  197. vListInitialise/4 (vListInitialise) @05e53460
  198. Type: function definition analyzed
  199. Visibility: externally_visible public
  200. Aux: @05a347b8
  201. References:
  202. Referring:
  203. Availability: available
  204. Function flags: count:1073741824 (estimated locally) body optimize_size
  205. Called by:
  206. Calls:
  207. MALLOC LATTICE Initial:
  208. uxListRemove: malloc_bottom
  209. vListInsert: malloc_bottom
  210. vListInsertEnd: malloc_bottom
  211. vListInitialiseItem: malloc_bottom
  212. vListInitialise: malloc_bottom
  213. MALLOC LATTICE after propagation:
  214. uxListRemove: malloc_bottom
  215. vListInsert: malloc_bottom
  216. vListInsertEnd: malloc_bottom
  217. vListInitialiseItem: malloc_bottom
  218. vListInitialise: malloc_bottom
  219. callgraph:
  220. uxListRemove/8 (uxListRemove) @05e53ee0
  221. Type: function definition analyzed
  222. Visibility: externally_visible public
  223. Aux: @05a34618
  224. References:
  225. Referring:
  226. Availability: available
  227. Function flags: count:1073741824 (estimated locally) body optimize_size
  228. Called by:
  229. Calls:
  230. vListInsert/7 (vListInsert) @05e53c40
  231. Type: function definition analyzed
  232. Visibility: externally_visible public
  233. Aux: @05a344d8
  234. References:
  235. Referring:
  236. Availability: available
  237. Function flags: count:178956970 (estimated locally) body optimize_size
  238. Called by:
  239. Calls:
  240. vListInsertEnd/6 (vListInsertEnd) @05e539a0
  241. Type: function definition analyzed
  242. Visibility: externally_visible public
  243. Aux: @05a343f8
  244. References:
  245. Referring:
  246. Availability: available
  247. Function flags: count:1073741824 (estimated locally) body optimize_size
  248. Called by:
  249. Calls:
  250. vListInitialiseItem/5 (vListInitialiseItem) @05e53700
  251. Type: function definition analyzed
  252. Visibility: externally_visible public
  253. Aux: @05a346f8
  254. References:
  255. Referring:
  256. Availability: available
  257. Function flags: count:1073741824 (estimated locally) body optimize_size
  258. Called by:
  259. Calls:
  260. vListInitialise/4 (vListInitialise) @05e53460
  261. Type: function definition analyzed
  262. Visibility: externally_visible public
  263. Aux: @05a34638
  264. References:
  265. Referring:
  266. Availability: available
  267. Function flags: count:1073741824 (estimated locally) body optimize_size
  268. Called by:
  269. Calls:
  270. ordered call graph: reduced
  271. uxListRemove/8 (uxListRemove) @05e53ee0
  272. Type: function definition analyzed
  273. Visibility: externally_visible public
  274. Aux: @05a34618
  275. References:
  276. Referring:
  277. Availability: available
  278. Function flags: count:1073741824 (estimated locally) body optimize_size
  279. Called by:
  280. Calls:
  281. vListInsert/7 (vListInsert) @05e53c40
  282. Type: function definition analyzed
  283. Visibility: externally_visible public
  284. Aux: @05a344d8
  285. References:
  286. Referring:
  287. Availability: available
  288. Function flags: count:178956970 (estimated locally) body optimize_size
  289. Called by:
  290. Calls:
  291. vListInsertEnd/6 (vListInsertEnd) @05e539a0
  292. Type: function definition analyzed
  293. Visibility: externally_visible public
  294. Aux: @05a343f8
  295. References:
  296. Referring:
  297. Availability: available
  298. Function flags: count:1073741824 (estimated locally) body optimize_size
  299. Called by:
  300. Calls:
  301. vListInitialiseItem/5 (vListInitialiseItem) @05e53700
  302. Type: function definition analyzed
  303. Visibility: externally_visible public
  304. Aux: @05a346f8
  305. References:
  306. Referring:
  307. Availability: available
  308. Function flags: count:1073741824 (estimated locally) body optimize_size
  309. Called by:
  310. Calls:
  311. vListInitialise/4 (vListInitialise) @05e53460
  312. Type: function definition analyzed
  313. Visibility: externally_visible public
  314. Aux: @05a34638
  315. References:
  316. Referring:
  317. Availability: available
  318. Function flags: count:1073741824 (estimated locally) body optimize_size
  319. Called by:
  320. Calls:
  321. Function found not to call free: vListInitialise
  322. Function found not to call free: vListInitialiseItem
  323. Function found not to call free: vListInsertEnd
  324. Function found not to call free: vListInsert
  325. Function found not to call free: uxListRemove
  326. uxListRemove (struct ListItem_t * const pxItemToRemove)
  327. {
  328. struct List_t * const pxList;
  329. struct xLIST_ITEM * _1;
  330. struct xLIST_ITEM * _2;
  331. struct ListItem_t * _3;
  332. long unsigned int _4;
  333. long unsigned int _5;
  334. UBaseType_t _15;
  335. <bb 2> [local count: 1073741824]:
  336. # DEBUG BEGIN_STMT
  337. pxList_9 = pxItemToRemove_8(D)->pvContainer;
  338. # DEBUG pxList => pxList_9
  339. # DEBUG BEGIN_STMT
  340. _1 = pxItemToRemove_8(D)->pxNext;
  341. _2 = pxItemToRemove_8(D)->pxPrevious;
  342. _1->pxPrevious = _2;
  343. # DEBUG BEGIN_STMT
  344. _2->pxNext = _1;
  345. # DEBUG BEGIN_STMT
  346. # DEBUG BEGIN_STMT
  347. _3 = pxList_9->pxIndex;
  348. if (_3 == pxItemToRemove_8(D))
  349. goto <bb 3>; [30.00%]
  350. else
  351. goto <bb 4>; [70.00%]
  352. <bb 3> [local count: 322122547]:
  353. # DEBUG BEGIN_STMT
  354. pxList_9->pxIndex = _2;
  355. <bb 4> [local count: 1073741824]:
  356. # DEBUG BEGIN_STMT
  357. # DEBUG BEGIN_STMT
  358. pxItemToRemove_8(D)->pvContainer = 0B;
  359. # DEBUG BEGIN_STMT
  360. _4 ={v} pxList_9->uxNumberOfItems;
  361. _5 = _4 + 4294967295;
  362. pxList_9->uxNumberOfItems ={v} _5;
  363. # DEBUG BEGIN_STMT
  364. _15 ={v} pxList_9->uxNumberOfItems;
  365. return _15;
  366. }
  367. vListInsert (struct List_t * const pxList, struct ListItem_t * const pxNewListItem)
  368. {
  369. const TickType_t xValueOfInsertion;
  370. struct ListItem_t * pxIterator;
  371. struct xLIST_ITEM * _1;
  372. long unsigned int _2;
  373. struct xLIST_ITEM * _3;
  374. long unsigned int _4;
  375. long unsigned int _5;
  376. <bb 2> [local count: 178956970]:
  377. # DEBUG BEGIN_STMT
  378. # DEBUG BEGIN_STMT
  379. xValueOfInsertion_10 = pxNewListItem_9(D)->xItemValue;
  380. # DEBUG xValueOfInsertion => xValueOfInsertion_10
  381. # DEBUG BEGIN_STMT
  382. # DEBUG BEGIN_STMT
  383. # DEBUG BEGIN_STMT
  384. if (xValueOfInsertion_10 == 4294967295)
  385. goto <bb 3>; [34.00%]
  386. else
  387. goto <bb 4>; [66.00%]
  388. <bb 3> [local count: 60845370]:
  389. # DEBUG BEGIN_STMT
  390. pxIterator_13 = pxList_11(D)->xListEnd.pxPrevious;
  391. # DEBUG pxIterator => pxIterator_13
  392. goto <bb 6>; [100.00%]
  393. <bb 4> [local count: 118111600]:
  394. # DEBUG BEGIN_STMT
  395. pxIterator_12 = &pxList_11(D)->xListEnd;
  396. # DEBUG pxIterator => pxIterator_12
  397. <bb 5> [local count: 1073741824]:
  398. # pxIterator_6 = PHI <pxIterator_12(4), _1(7)>
  399. # DEBUG pxIterator => pxIterator_6
  400. # DEBUG BEGIN_STMT
  401. _1 = pxIterator_6->pxNext;
  402. _2 = _1->xItemValue;
  403. if (_2 <= xValueOfInsertion_10)
  404. goto <bb 7>; [89.00%]
  405. else
  406. goto <bb 6>; [11.00%]
  407. <bb 7> [local count: 955630223]:
  408. goto <bb 5>; [100.00%]
  409. <bb 6> [local count: 178956970]:
  410. # pxIterator_7 = PHI <pxIterator_13(3), pxIterator_6(5)>
  411. # DEBUG pxIterator => pxIterator_7
  412. # DEBUG BEGIN_STMT
  413. _3 = pxIterator_7->pxNext;
  414. pxNewListItem_9(D)->pxNext = _3;
  415. # DEBUG BEGIN_STMT
  416. _3->pxPrevious = pxNewListItem_9(D);
  417. # DEBUG BEGIN_STMT
  418. pxNewListItem_9(D)->pxPrevious = pxIterator_7;
  419. # DEBUG BEGIN_STMT
  420. pxIterator_7->pxNext = pxNewListItem_9(D);
  421. # DEBUG BEGIN_STMT
  422. pxNewListItem_9(D)->pvContainer = pxList_11(D);
  423. # DEBUG BEGIN_STMT
  424. _4 ={v} pxList_11(D)->uxNumberOfItems;
  425. _5 = _4 + 1;
  426. pxList_11(D)->uxNumberOfItems ={v} _5;
  427. return;
  428. }
  429. vListInsertEnd (struct List_t * const pxList, struct ListItem_t * const pxNewListItem)
  430. {
  431. struct ListItem_t * const pxIndex;
  432. struct xLIST_ITEM * _1;
  433. struct xLIST_ITEM * _2;
  434. long unsigned int _3;
  435. long unsigned int _4;
  436. <bb 2> [local count: 1073741824]:
  437. # DEBUG BEGIN_STMT
  438. pxIndex_7 = pxList_6(D)->pxIndex;
  439. # DEBUG pxIndex => pxIndex_7
  440. # DEBUG BEGIN_STMT
  441. # DEBUG BEGIN_STMT
  442. # DEBUG BEGIN_STMT
  443. pxNewListItem_8(D)->pxNext = pxIndex_7;
  444. # DEBUG BEGIN_STMT
  445. _1 = pxIndex_7->pxPrevious;
  446. pxNewListItem_8(D)->pxPrevious = _1;
  447. # DEBUG BEGIN_STMT
  448. # DEBUG BEGIN_STMT
  449. _2 = pxIndex_7->pxPrevious;
  450. _2->pxNext = pxNewListItem_8(D);
  451. # DEBUG BEGIN_STMT
  452. pxIndex_7->pxPrevious = pxNewListItem_8(D);
  453. # DEBUG BEGIN_STMT
  454. pxNewListItem_8(D)->pvContainer = pxList_6(D);
  455. # DEBUG BEGIN_STMT
  456. _3 ={v} pxList_6(D)->uxNumberOfItems;
  457. _4 = _3 + 1;
  458. pxList_6(D)->uxNumberOfItems ={v} _4;
  459. return;
  460. }
  461. vListInitialiseItem (struct ListItem_t * const pxItem)
  462. {
  463. <bb 2> [local count: 1073741824]:
  464. # DEBUG BEGIN_STMT
  465. pxItem_2(D)->pvContainer = 0B;
  466. # DEBUG BEGIN_STMT
  467. # DEBUG BEGIN_STMT
  468. return;
  469. }
  470. vListInitialise (struct List_t * const pxList)
  471. {
  472. struct MiniListItem_t * _1;
  473. <bb 2> [local count: 1073741824]:
  474. # DEBUG BEGIN_STMT
  475. _1 = &pxList_2(D)->xListEnd;
  476. pxList_2(D)->pxIndex = _1;
  477. # DEBUG BEGIN_STMT
  478. pxList_2(D)->xListEnd.xItemValue = 4294967295;
  479. # DEBUG BEGIN_STMT
  480. pxList_2(D)->xListEnd.pxNext = _1;
  481. # DEBUG BEGIN_STMT
  482. pxList_2(D)->xListEnd.pxPrevious = _1;
  483. # DEBUG BEGIN_STMT
  484. pxList_2(D)->uxNumberOfItems ={v} 0;
  485. # DEBUG BEGIN_STMT
  486. # DEBUG BEGIN_STMT
  487. return;
  488. }