list.c.068i.whole-program 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. Marking local functions:
  2. Marking externally visible functions: uxListRemove vListInsert vListInsertEnd vListInitialiseItem vListInitialise
  3. Marking externally visible variables:
  4. Reclaiming functions:
  5. Reclaiming variables:
  6. Clearing address taken flags:
  7. Symbol table:
  8. uxListRemove/8 (uxListRemove) @06b86380
  9. Type: function definition analyzed
  10. Visibility: force_output externally_visible no_reorder public
  11. References:
  12. Referring:
  13. Availability: available
  14. Function flags: body
  15. Called by:
  16. Calls:
  17. vListInsert/7 (vListInsert) @06b86d20
  18. Type: function definition analyzed
  19. Visibility: force_output externally_visible no_reorder public
  20. References:
  21. Referring:
  22. Availability: available
  23. Function flags: body
  24. Called by:
  25. Calls:
  26. vListInsertEnd/6 (vListInsertEnd) @06b86a80
  27. Type: function definition analyzed
  28. Visibility: force_output externally_visible no_reorder public
  29. References:
  30. Referring:
  31. Availability: available
  32. Function flags: body
  33. Called by:
  34. Calls:
  35. vListInitialiseItem/5 (vListInitialiseItem) @06b867e0
  36. Type: function definition analyzed
  37. Visibility: force_output externally_visible no_reorder public
  38. References:
  39. Referring:
  40. Availability: available
  41. Function flags: body
  42. Called by:
  43. Calls:
  44. vListInitialise/4 (vListInitialise) @06b86540
  45. Type: function definition analyzed
  46. Visibility: force_output externally_visible no_reorder public
  47. References:
  48. Referring:
  49. Availability: available
  50. Function flags: body
  51. Called by:
  52. Calls:
  53. uxListRemove (struct ListItem_t * const pxItemToRemove)
  54. {
  55. struct List_t * const pxList;
  56. UBaseType_t D.6028;
  57. struct xLIST_ITEM * _1;
  58. struct xLIST_ITEM * _2;
  59. struct xLIST_ITEM * _3;
  60. struct xLIST_ITEM * _4;
  61. struct ListItem_t * _5;
  62. struct xLIST_ITEM * _6;
  63. long unsigned int _7;
  64. long unsigned int _8;
  65. UBaseType_t _18;
  66. <bb 2> :
  67. pxList_12 = pxItemToRemove_11(D)->pvContainer;
  68. _1 = pxItemToRemove_11(D)->pxNext;
  69. _2 = pxItemToRemove_11(D)->pxPrevious;
  70. _1->pxPrevious = _2;
  71. _3 = pxItemToRemove_11(D)->pxPrevious;
  72. _4 = pxItemToRemove_11(D)->pxNext;
  73. _3->pxNext = _4;
  74. _5 = pxList_12->pxIndex;
  75. if (pxItemToRemove_11(D) == _5)
  76. goto <bb 3>; [INV]
  77. else
  78. goto <bb 4>; [INV]
  79. <bb 3> :
  80. _6 = pxItemToRemove_11(D)->pxPrevious;
  81. pxList_12->pxIndex = _6;
  82. <bb 4> :
  83. pxItemToRemove_11(D)->pvContainer = 0B;
  84. _7 ={v} pxList_12->uxNumberOfItems;
  85. _8 = _7 + 4294967295;
  86. pxList_12->uxNumberOfItems ={v} _8;
  87. _18 ={v} pxList_12->uxNumberOfItems;
  88. <bb 5> :
  89. <L3>:
  90. return _18;
  91. }
  92. vListInsert (struct List_t * const pxList, struct ListItem_t * const pxNewListItem)
  93. {
  94. const TickType_t xValueOfInsertion;
  95. struct ListItem_t * pxIterator;
  96. struct xLIST_ITEM * _1;
  97. long unsigned int _2;
  98. struct xLIST_ITEM * _3;
  99. struct xLIST_ITEM * _4;
  100. long unsigned int _5;
  101. long unsigned int _6;
  102. <bb 2> :
  103. xValueOfInsertion_11 = pxNewListItem_10(D)->xItemValue;
  104. if (xValueOfInsertion_11 == 4294967295)
  105. goto <bb 3>; [INV]
  106. else
  107. goto <bb 4>; [INV]
  108. <bb 3> :
  109. pxIterator_15 = pxList_12(D)->xListEnd.pxPrevious;
  110. goto <bb 7>; [INV]
  111. <bb 4> :
  112. pxIterator_13 = &pxList_12(D)->xListEnd;
  113. goto <bb 6>; [INV]
  114. <bb 5> :
  115. pxIterator_14 = pxIterator_7->pxNext;
  116. <bb 6> :
  117. # pxIterator_7 = PHI <pxIterator_13(4), pxIterator_14(5)>
  118. _1 = pxIterator_7->pxNext;
  119. _2 = _1->xItemValue;
  120. if (xValueOfInsertion_11 >= _2)
  121. goto <bb 5>; [INV]
  122. else
  123. goto <bb 7>; [INV]
  124. <bb 7> :
  125. # pxIterator_8 = PHI <pxIterator_15(3), pxIterator_7(6)>
  126. _3 = pxIterator_8->pxNext;
  127. pxNewListItem_10(D)->pxNext = _3;
  128. _4 = pxNewListItem_10(D)->pxNext;
  129. _4->pxPrevious = pxNewListItem_10(D);
  130. pxNewListItem_10(D)->pxPrevious = pxIterator_8;
  131. pxIterator_8->pxNext = pxNewListItem_10(D);
  132. pxNewListItem_10(D)->pvContainer = pxList_12(D);
  133. _5 ={v} pxList_12(D)->uxNumberOfItems;
  134. _6 = _5 + 1;
  135. pxList_12(D)->uxNumberOfItems ={v} _6;
  136. return;
  137. }
  138. vListInsertEnd (struct List_t * const pxList, struct ListItem_t * const pxNewListItem)
  139. {
  140. struct ListItem_t * const pxIndex;
  141. struct xLIST_ITEM * _1;
  142. struct xLIST_ITEM * _2;
  143. long unsigned int _3;
  144. long unsigned int _4;
  145. <bb 2> :
  146. pxIndex_7 = pxList_6(D)->pxIndex;
  147. pxNewListItem_8(D)->pxNext = pxIndex_7;
  148. _1 = pxIndex_7->pxPrevious;
  149. pxNewListItem_8(D)->pxPrevious = _1;
  150. _2 = pxIndex_7->pxPrevious;
  151. _2->pxNext = pxNewListItem_8(D);
  152. pxIndex_7->pxPrevious = pxNewListItem_8(D);
  153. pxNewListItem_8(D)->pvContainer = pxList_6(D);
  154. _3 ={v} pxList_6(D)->uxNumberOfItems;
  155. _4 = _3 + 1;
  156. pxList_6(D)->uxNumberOfItems ={v} _4;
  157. return;
  158. }
  159. vListInitialiseItem (struct ListItem_t * const pxItem)
  160. {
  161. <bb 2> :
  162. pxItem_2(D)->pvContainer = 0B;
  163. return;
  164. }
  165. vListInitialise (struct List_t * const pxList)
  166. {
  167. struct MiniListItem_t * _1;
  168. struct MiniListItem_t * _2;
  169. struct MiniListItem_t * _3;
  170. <bb 2> :
  171. _1 = &pxList_4(D)->xListEnd;
  172. pxList_4(D)->pxIndex = _1;
  173. pxList_4(D)->xListEnd.xItemValue = 4294967295;
  174. _2 = &pxList_4(D)->xListEnd;
  175. pxList_4(D)->xListEnd.pxNext = _2;
  176. _3 = &pxList_4(D)->xListEnd;
  177. pxList_4(D)->xListEnd.pxPrevious = _3;
  178. pxList_4(D)->uxNumberOfItems ={v} 0;
  179. return;
  180. }