/src/plugins/e-acsl/tests/memory/oracle_ci/gen_initialized.c

https://github.com/Frama-C/Frama-C-snapshot · C · 365 lines · 325 code · 3 blank · 37 comment · 8 complexity · 09dbd1eb4c4ef1e06fd391ee85869b9d MD5 · raw file

  1. /* Generated by Frama-C */
  2. #include "stdio.h"
  3. #include "stdlib.h"
  4. int A = 0;
  5. int B;
  6. void __e_acsl_globals_init(void)
  7. {
  8. static char __e_acsl_already_run = 0;
  9. if (! __e_acsl_already_run) {
  10. __e_acsl_already_run = 1;
  11. __e_acsl_store_block((void *)(& B),(size_t)4);
  12. __e_acsl_full_init((void *)(& B));
  13. __e_acsl_store_block((void *)(& A),(size_t)4);
  14. __e_acsl_full_init((void *)(& A));
  15. }
  16. return;
  17. }
  18. int main(void)
  19. {
  20. int __retres;
  21. int b;
  22. long *r;
  23. long d[2];
  24. int dup[2];
  25. __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8);
  26. __e_acsl_globals_init();
  27. __e_acsl_store_block((void *)(d),(size_t)16);
  28. __e_acsl_store_block((void *)(& r),(size_t)8);
  29. __e_acsl_store_block((void *)(& b),(size_t)4);
  30. int *p = & A;
  31. __e_acsl_store_block((void *)(& p),(size_t)8);
  32. __e_acsl_full_init((void *)(& p));
  33. int *q = & B;
  34. __e_acsl_store_block((void *)(& q),(size_t)8);
  35. __e_acsl_full_init((void *)(& q));
  36. /*@ assert \initialized(&A); */
  37. __e_acsl_assert(1,(char *)"Assertion",(char *)"main",
  38. (char *)"\\initialized(&A)",16);
  39. /*@ assert \initialized(&B); */
  40. __e_acsl_assert(1,(char *)"Assertion",(char *)"main",
  41. (char *)"\\initialized(&B)",17);
  42. /*@ assert \initialized(p); */
  43. {
  44. int __gen_e_acsl_initialized;
  45. __gen_e_acsl_initialized = __e_acsl_initialized((void *)p,sizeof(int));
  46. __e_acsl_assert(__gen_e_acsl_initialized,(char *)"Assertion",
  47. (char *)"main",(char *)"\\initialized(p)",18);
  48. }
  49. /*@ assert \initialized(q); */
  50. {
  51. int __gen_e_acsl_initialized_2;
  52. __gen_e_acsl_initialized_2 = __e_acsl_initialized((void *)q,sizeof(int));
  53. __e_acsl_assert(__gen_e_acsl_initialized_2,(char *)"Assertion",
  54. (char *)"main",(char *)"\\initialized(q)",19);
  55. }
  56. int a = 0;
  57. __e_acsl_store_block((void *)(& a),(size_t)4);
  58. __e_acsl_full_init((void *)(& a));
  59. long c[2] = {(long)1, (long)1};
  60. __e_acsl_store_block((void *)(c),(size_t)16);
  61. __e_acsl_full_init((void *)(& c));
  62. __e_acsl_full_init((void *)(& p));
  63. p = & a;
  64. __e_acsl_full_init((void *)(& q));
  65. q = & b;
  66. /*@ assert \initialized(&a); */
  67. {
  68. int __gen_e_acsl_initialized_3;
  69. __gen_e_acsl_initialized_3 = __e_acsl_initialized((void *)(& a),
  70. sizeof(int));
  71. __e_acsl_assert(__gen_e_acsl_initialized_3,(char *)"Assertion",
  72. (char *)"main",(char *)"\\initialized(&a)",30);
  73. }
  74. /*@ assert ¬\initialized(&b); */
  75. {
  76. int __gen_e_acsl_initialized_4;
  77. __gen_e_acsl_initialized_4 = __e_acsl_initialized((void *)(& b),
  78. sizeof(int));
  79. __e_acsl_assert(! __gen_e_acsl_initialized_4,(char *)"Assertion",
  80. (char *)"main",(char *)"!\\initialized(&b)",31);
  81. }
  82. /*@ assert \initialized(p); */
  83. {
  84. int __gen_e_acsl_initialized_5;
  85. __gen_e_acsl_initialized_5 = __e_acsl_initialized((void *)p,sizeof(int));
  86. __e_acsl_assert(__gen_e_acsl_initialized_5,(char *)"Assertion",
  87. (char *)"main",(char *)"\\initialized(p)",32);
  88. }
  89. /*@ assert ¬\initialized(q); */
  90. {
  91. int __gen_e_acsl_initialized_6;
  92. __gen_e_acsl_initialized_6 = __e_acsl_initialized((void *)q,sizeof(int));
  93. __e_acsl_assert(! __gen_e_acsl_initialized_6,(char *)"Assertion",
  94. (char *)"main",(char *)"!\\initialized(q)",33);
  95. }
  96. /*@ assert \initialized(&c); */
  97. {
  98. int __gen_e_acsl_initialized_7;
  99. __gen_e_acsl_initialized_7 = __e_acsl_initialized((void *)(& c),
  100. sizeof(long [2]));
  101. __e_acsl_assert(__gen_e_acsl_initialized_7,(char *)"Assertion",
  102. (char *)"main",(char *)"\\initialized(&c)",34);
  103. }
  104. /*@ assert ¬\initialized(&d); */
  105. {
  106. int __gen_e_acsl_initialized_8;
  107. __gen_e_acsl_initialized_8 = __e_acsl_initialized((void *)(& d),
  108. sizeof(long [2]));
  109. __e_acsl_assert(! __gen_e_acsl_initialized_8,(char *)"Assertion",
  110. (char *)"main",(char *)"!\\initialized(&d)",35);
  111. }
  112. __e_acsl_full_init((void *)(& b));
  113. b = 0;
  114. /*@ assert \initialized(q); */
  115. {
  116. int __gen_e_acsl_initialized_9;
  117. __gen_e_acsl_initialized_9 = __e_acsl_initialized((void *)q,sizeof(int));
  118. __e_acsl_assert(__gen_e_acsl_initialized_9,(char *)"Assertion",
  119. (char *)"main",(char *)"\\initialized(q)",39);
  120. }
  121. /*@ assert \initialized(&b); */
  122. {
  123. int __gen_e_acsl_initialized_10;
  124. __gen_e_acsl_initialized_10 = __e_acsl_initialized((void *)(& b),
  125. sizeof(int));
  126. __e_acsl_assert(__gen_e_acsl_initialized_10,(char *)"Assertion",
  127. (char *)"main",(char *)"\\initialized(&b)",40);
  128. }
  129. __e_acsl_full_init((void *)(& r));
  130. r = d;
  131. /*@ assert ¬\initialized((long *)d); */
  132. {
  133. int __gen_e_acsl_initialized_11;
  134. __gen_e_acsl_initialized_11 = __e_acsl_initialized((void *)(d),
  135. sizeof(long));
  136. __e_acsl_assert(! __gen_e_acsl_initialized_11,(char *)"Assertion",
  137. (char *)"main",(char *)"!\\initialized((long *)d)",43);
  138. }
  139. /*@ assert ¬\initialized(&d[1]); */
  140. {
  141. int __gen_e_acsl_initialized_12;
  142. __gen_e_acsl_initialized_12 = __e_acsl_initialized((void *)(& d[1]),
  143. sizeof(long));
  144. __e_acsl_assert(! __gen_e_acsl_initialized_12,(char *)"Assertion",
  145. (char *)"main",(char *)"!\\initialized(&d[1])",44);
  146. }
  147. /*@ assert ¬\initialized(&d); */
  148. {
  149. int __gen_e_acsl_initialized_13;
  150. __gen_e_acsl_initialized_13 = __e_acsl_initialized((void *)(& d),
  151. sizeof(long [2]));
  152. __e_acsl_assert(! __gen_e_acsl_initialized_13,(char *)"Assertion",
  153. (char *)"main",(char *)"!\\initialized(&d)",45);
  154. }
  155. /*@ assert ¬\initialized(r); */
  156. {
  157. int __gen_e_acsl_initialized_14;
  158. __gen_e_acsl_initialized_14 = __e_acsl_initialized((void *)r,
  159. sizeof(long));
  160. __e_acsl_assert(! __gen_e_acsl_initialized_14,(char *)"Assertion",
  161. (char *)"main",(char *)"!\\initialized(r)",46);
  162. }
  163. /*@ assert ¬\initialized(r + 1); */
  164. {
  165. int __gen_e_acsl_initialized_15;
  166. __gen_e_acsl_initialized_15 = __e_acsl_initialized((void *)(r + 1),
  167. sizeof(long));
  168. __e_acsl_assert(! __gen_e_acsl_initialized_15,(char *)"Assertion",
  169. (char *)"main",(char *)"!\\initialized(r + 1)",47);
  170. }
  171. __e_acsl_initialize((void *)(d),sizeof(long));
  172. d[0] = (long)1;
  173. /*@ assert \initialized((long *)d); */
  174. {
  175. int __gen_e_acsl_initialized_16;
  176. __gen_e_acsl_initialized_16 = __e_acsl_initialized((void *)(d),
  177. sizeof(long));
  178. __e_acsl_assert(__gen_e_acsl_initialized_16,(char *)"Assertion",
  179. (char *)"main",(char *)"\\initialized((long *)d)",50);
  180. }
  181. /*@ assert ¬\initialized(&d[1]); */
  182. {
  183. int __gen_e_acsl_initialized_17;
  184. __gen_e_acsl_initialized_17 = __e_acsl_initialized((void *)(& d[1]),
  185. sizeof(long));
  186. __e_acsl_assert(! __gen_e_acsl_initialized_17,(char *)"Assertion",
  187. (char *)"main",(char *)"!\\initialized(&d[1])",51);
  188. }
  189. /*@ assert ¬\initialized(&d); */
  190. {
  191. int __gen_e_acsl_initialized_18;
  192. __gen_e_acsl_initialized_18 = __e_acsl_initialized((void *)(& d),
  193. sizeof(long [2]));
  194. __e_acsl_assert(! __gen_e_acsl_initialized_18,(char *)"Assertion",
  195. (char *)"main",(char *)"!\\initialized(&d)",52);
  196. }
  197. /*@ assert \initialized(r); */
  198. {
  199. int __gen_e_acsl_initialized_19;
  200. __gen_e_acsl_initialized_19 = __e_acsl_initialized((void *)r,
  201. sizeof(long));
  202. __e_acsl_assert(__gen_e_acsl_initialized_19,(char *)"Assertion",
  203. (char *)"main",(char *)"\\initialized(r)",53);
  204. }
  205. /*@ assert ¬\initialized(r + 1); */
  206. {
  207. int __gen_e_acsl_initialized_20;
  208. __gen_e_acsl_initialized_20 = __e_acsl_initialized((void *)(r + 1),
  209. sizeof(long));
  210. __e_acsl_assert(! __gen_e_acsl_initialized_20,(char *)"Assertion",
  211. (char *)"main",(char *)"!\\initialized(r + 1)",54);
  212. }
  213. __e_acsl_initialize((void *)(& d[1]),sizeof(long));
  214. d[1] = (long)1;
  215. /*@ assert \initialized((long *)d); */
  216. {
  217. int __gen_e_acsl_initialized_21;
  218. __gen_e_acsl_initialized_21 = __e_acsl_initialized((void *)(d),
  219. sizeof(long));
  220. __e_acsl_assert(__gen_e_acsl_initialized_21,(char *)"Assertion",
  221. (char *)"main",(char *)"\\initialized((long *)d)",57);
  222. }
  223. /*@ assert \initialized(&d[1]); */
  224. {
  225. int __gen_e_acsl_initialized_22;
  226. __gen_e_acsl_initialized_22 = __e_acsl_initialized((void *)(& d[1]),
  227. sizeof(long));
  228. __e_acsl_assert(__gen_e_acsl_initialized_22,(char *)"Assertion",
  229. (char *)"main",(char *)"\\initialized(&d[1])",58);
  230. }
  231. /*@ assert \initialized(&d); */
  232. {
  233. int __gen_e_acsl_initialized_23;
  234. __gen_e_acsl_initialized_23 = __e_acsl_initialized((void *)(& d),
  235. sizeof(long [2]));
  236. __e_acsl_assert(__gen_e_acsl_initialized_23,(char *)"Assertion",
  237. (char *)"main",(char *)"\\initialized(&d)",59);
  238. }
  239. /*@ assert \initialized(r); */
  240. {
  241. int __gen_e_acsl_initialized_24;
  242. __gen_e_acsl_initialized_24 = __e_acsl_initialized((void *)r,
  243. sizeof(long));
  244. __e_acsl_assert(__gen_e_acsl_initialized_24,(char *)"Assertion",
  245. (char *)"main",(char *)"\\initialized(r)",60);
  246. }
  247. /*@ assert \initialized(r + 1); */
  248. {
  249. int __gen_e_acsl_initialized_25;
  250. __gen_e_acsl_initialized_25 = __e_acsl_initialized((void *)(r + 1),
  251. sizeof(long));
  252. __e_acsl_assert(__gen_e_acsl_initialized_25,(char *)"Assertion",
  253. (char *)"main",(char *)"\\initialized(r + 1)",61);
  254. }
  255. __e_acsl_full_init((void *)(& p));
  256. p = (int *)malloc(sizeof(int *));
  257. /*@ assert ¬\initialized(p); */
  258. {
  259. int __gen_e_acsl_initialized_26;
  260. __gen_e_acsl_initialized_26 = __e_acsl_initialized((void *)p,sizeof(int));
  261. __e_acsl_assert(! __gen_e_acsl_initialized_26,(char *)"Assertion",
  262. (char *)"main",(char *)"!\\initialized(p)",65);
  263. }
  264. __e_acsl_full_init((void *)(& q));
  265. q = (int *)calloc((unsigned long)1,sizeof(int));
  266. /*@ assert \initialized(q); */
  267. {
  268. int __gen_e_acsl_initialized_27;
  269. __gen_e_acsl_initialized_27 = __e_acsl_initialized((void *)q,sizeof(int));
  270. __e_acsl_assert(__gen_e_acsl_initialized_27,(char *)"Assertion",
  271. (char *)"main",(char *)"\\initialized(q)",69);
  272. }
  273. __e_acsl_full_init((void *)(& q));
  274. q = (int *)realloc((void *)q,(unsigned long)2 * sizeof(int));
  275. /*@ assert \initialized(q); */
  276. {
  277. int __gen_e_acsl_initialized_28;
  278. __gen_e_acsl_initialized_28 = __e_acsl_initialized((void *)q,sizeof(int));
  279. __e_acsl_assert(__gen_e_acsl_initialized_28,(char *)"Assertion",
  280. (char *)"main",(char *)"\\initialized(q)",74);
  281. }
  282. __e_acsl_full_init((void *)(& q));
  283. q ++;
  284. /*@ assert ¬\initialized(q); */
  285. {
  286. int __gen_e_acsl_initialized_29;
  287. __gen_e_acsl_initialized_29 = __e_acsl_initialized((void *)q,sizeof(int));
  288. __e_acsl_assert(! __gen_e_acsl_initialized_29,(char *)"Assertion",
  289. (char *)"main",(char *)"!\\initialized(q)",76);
  290. }
  291. __e_acsl_full_init((void *)(& q));
  292. q --;
  293. free((void *)p);
  294. free((void *)q);
  295. /*@ assert ¬\initialized(p); */
  296. {
  297. int __gen_e_acsl_initialized_30;
  298. /*@ assert Eva: dangling_pointer: ¬\dangling(&p); */
  299. __gen_e_acsl_initialized_30 = __e_acsl_initialized((void *)p,sizeof(int));
  300. __e_acsl_assert(! __gen_e_acsl_initialized_30,(char *)"Assertion",
  301. (char *)"main",(char *)"!\\initialized(p)",84);
  302. }
  303. /*@ assert ¬\initialized(q); */
  304. {
  305. int __gen_e_acsl_initialized_31;
  306. __gen_e_acsl_initialized_31 = __e_acsl_initialized((void *)q,sizeof(int));
  307. __e_acsl_assert(! __gen_e_acsl_initialized_31,(char *)"Assertion",
  308. (char *)"main",(char *)"!\\initialized(q)",85);
  309. }
  310. __e_acsl_full_init((void *)(& q));
  311. q = (int *)(& q - 1024 * 5);
  312. __e_acsl_full_init((void *)(& q));
  313. q = (int *)128;
  314. /*@ assert ¬\initialized(q); */
  315. {
  316. int __gen_e_acsl_initialized_32;
  317. __gen_e_acsl_initialized_32 = __e_acsl_initialized((void *)q,sizeof(int));
  318. __e_acsl_assert(! __gen_e_acsl_initialized_32,(char *)"Assertion",
  319. (char *)"main",(char *)"!\\initialized(q)",93);
  320. }
  321. __e_acsl_full_init((void *)(& p));
  322. p = (int *)0;
  323. /*@ assert ¬\initialized(p); */
  324. {
  325. int __gen_e_acsl_initialized_33;
  326. __gen_e_acsl_initialized_33 = __e_acsl_initialized((void *)p,sizeof(int));
  327. __e_acsl_assert(! __gen_e_acsl_initialized_33,(char *)"Assertion",
  328. (char *)"main",(char *)"!\\initialized(p)",96);
  329. }
  330. int size = 100;
  331. char *partsc = malloc((unsigned long)size * sizeof(char));
  332. char *partsi = malloc((unsigned long)size * sizeof(int));
  333. {
  334. int i = 0;
  335. while (i < size) {
  336. if (i % 2 != 0) *(partsc + i) = (char)'0';
  337. else *(partsi + i) = (char)0;
  338. i ++;
  339. }
  340. }
  341. {
  342. int i_0 = 0;
  343. while (i_0 < size) {
  344. if (i_0 % 2 != 0) ;
  345. i_0 ++;
  346. }
  347. }
  348. dup[0] = 1;
  349. dup[0] = 1;
  350. __retres = 0;
  351. __e_acsl_delete_block((void *)(& B));
  352. __e_acsl_delete_block((void *)(& A));
  353. __e_acsl_delete_block((void *)(d));
  354. __e_acsl_delete_block((void *)(c));
  355. __e_acsl_delete_block((void *)(& r));
  356. __e_acsl_delete_block((void *)(& b));
  357. __e_acsl_delete_block((void *)(& a));
  358. __e_acsl_delete_block((void *)(& q));
  359. __e_acsl_delete_block((void *)(& p));
  360. __e_acsl_memory_clean();
  361. return __retres;
  362. }