User: | Jiri Slaby |
Error type: | Reachable Error Location |
Error type description: | A specified error location is reachable in some program path |
File location: | locks/test_locks_15.BUG.c |
Line in file: | 234 |
Project: | SV-COMP 2012 |
Tools: |
Manual Work
|
Entered: | 2012-11-19 13:47:39 UTC |
1int get_exit_nondet() 2{ 3 int retval; 4 return (retval); 5} 6 7int main() 8{ 9 int p1; // condition variable 10 int lk1; // lock variable 11 12 int p2; // condition variable 13 int lk2; // lock variable 14 15 int p3; // condition variable 16 int lk3; // lock variable 17 18 int p4; // condition variable 19 int lk4; // lock variable 20 21 int p5; // condition variable 22 int lk5; // lock variable 23 24 int p6; // condition variable 25 int lk6; // lock variable 26 27 int p7; // condition variable 28 int lk7; // lock variable 29 30 int p8; // condition variable 31 int lk8; // lock variable 32 33 int p9; // condition variable 34 int lk9; // lock variable 35 36 int p10; // condition variable 37 int lk10; // lock variable 38 39 int p11; // condition variable 40 int lk11; // lock variable 41 42 int p12; // condition variable 43 int lk12; // lock variable 44 45 int p13; // condition variable 46 int lk13; // lock variable 47 48 int p14; // condition variable 49 int lk14; // lock variable 50 51 int p15; // condition variable 52 int lk15; // lock variable 53 54 55 int cond; 56 57 while(1) { 58 cond = nondet_int(); 59 if (cond == 0) { 60 goto out; 61 } else {} 62 lk1 = 0; // initially lock is open 63 64 lk2 = 0; // initially lock is open 65 66 lk3 = 0; // initially lock is open 67 68 lk4 = 0; // initially lock is open 69 70 lk5 = 0; // initially lock is open 71 72 lk6 = 0; // initially lock is open 73 74 lk7 = 0; // initially lock is open 75 76 lk8 = 0; // initially lock is open 77 78 lk9 = 0; // initially lock is open 79 80 lk10 = 0; // initially lock is open 81 82 lk11 = 0; // initially lock is open 83 84 lk12 = 0; // initially lock is open 85 86 lk13 = 0; // initially lock is open 87 88 lk14 = 0; // initially lock is open 89 90 lk15 = 0; // initially lock is open 91 92 93 // lock phase 94 if (p1 != 0) { 95 lk1 = 1; // acquire lock 96 } else {} 97 98 if (p2 != 0) { 99 lk2 = 1; // acquire lock 100 } else {} 101 102 if (p3 != 0) { 103 lk3 = 1; // acquire lock 104 } else {} 105 106 if (p4 != 0) { 107 lk4 = 1; // acquire lock 108 } else {} 109 110 if (p5 != 0) { 111 lk5 = 1; // acquire lock 112 } else {} 113 114 if (p6 != 0) { 115 lk6 = 1; // acquire lock 116 } else {} 117 118 if (p7 != 0) { 119 lk7 = 1; // acquire lock 120 } else {} 121 122 if (p8 != 0) { 123 lk8 = 1; // acquire lock 124 } else {} 125 126 if (p9 != 0) { 127 lk9 = 1; // acquire lock 128 } else {} 129 130 if (p10 != 0) { 131 lk10 = 1; // acquire lock 132 } else {} 133 134 if (p11 != 0) { 135 lk11 = 1; // acquire lock 136 } else {} 137 138 if (p12 != 0) { 139 lk12 = 1; // acquire lock 140 } else {} 141 142 if (p13 != 0) { 143 lk13 = 1; // acquire lock 144 } else {} 145 146 if (p14 != 0) { 147 lk14 = 1; // acquire lock 148 } else {} 149 150 if (p15 != 0) { 151 lk15 = 1; // acquire lock 152 } else {} 153 154 155 // unlock phase 156 if (p1 != 0) { 157 if (lk1 != 1) goto ERROR; // assertion failure 158 lk1 = 0; 159 } else {} 160 161 if (p2 != 0) { 162 if (lk2 != 1) goto ERROR; // assertion failure 163 lk2 = 0; 164 } else { goto ERROR; } 165 166 if (p3 != 0) { 167 if (lk3 != 1) goto ERROR; // assertion failure 168 lk3 = 0; 169 } else {} 170 171 if (p4 != 0) { 172 if (lk4 != 1) goto ERROR; // assertion failure 173 lk4 = 0; 174 } else {} 175 176 if (p5 != 0) { 177 if (lk5 != 1) goto ERROR; // assertion failure 178 lk5 = 0; 179 } else {} 180 181 if (p6 != 0) { 182 if (lk6 != 1) goto ERROR; // assertion failure 183 lk6 = 0; 184 } else {} 185 186 if (p7 != 0) { 187 if (lk7 != 1) goto ERROR; // assertion failure 188 lk7 = 0; 189 } else {} 190 191 if (p8 != 0) { 192 if (lk8 != 1) goto ERROR; // assertion failure 193 lk8 = 0; 194 } else {} 195 196 if (p9 != 0) { 197 if (lk9 != 1) goto ERROR; // assertion failure 198 lk9 = 0; 199 } else {} 200 201 if (p10 != 0) { 202 if (lk10 != 1) goto ERROR; // assertion failure 203 lk10 = 0; 204 } else {} 205 206 if (p11 != 0) { 207 if (lk11 != 1) goto ERROR; // assertion failure 208 lk11 = 0; 209 } else {} 210 211 if (p12 != 0) { 212 if (lk12 != 1) goto ERROR; // assertion failure 213 lk12 = 0; 214 } else {} 215 216 if (p13 != 0) { 217 if (lk13 != 1) goto ERROR; // assertion failure 218 lk13 = 0; 219 } else {} 220 221 if (p14 != 0) { 222 if (lk14 != 1) goto ERROR; // assertion failure 223 lk14 = 0; 224 } else { goto ERROR; } 225 226 if (p15 != 0) { 227 if (lk15 != 1) goto ERROR; // assertion failure 228 lk15 = 0; 229 } else {} 230 231 } 232 out: 233 return 0; 234 ERROR: 235 return 0; 236} 237