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_12.c |
Line in file: | 192 |
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 46 int cond; 47 48 while(1) { 49 cond = get_exit_nondet(); 50 if (cond == 0) { 51 goto out; 52 } else {} 53 lk1 = 0; // initially lock is open 54 55 lk2 = 0; // initially lock is open 56 57 lk3 = 0; // initially lock is open 58 59 lk4 = 0; // initially lock is open 60 61 lk5 = 0; // initially lock is open 62 63 lk6 = 0; // initially lock is open 64 65 lk7 = 0; // initially lock is open 66 67 lk8 = 0; // initially lock is open 68 69 lk9 = 0; // initially lock is open 70 71 lk10 = 0; // initially lock is open 72 73 lk11 = 0; // initially lock is open 74 75 lk12 = 0; // initially lock is open 76 77 78 // lock phase 79 if (p1 != 0) { 80 lk1 = 1; // acquire lock 81 } else {} 82 83 if (p2 != 0) { 84 lk2 = 1; // acquire lock 85 } else {} 86 87 if (p3 != 0) { 88 lk3 = 1; // acquire lock 89 } else {} 90 91 if (p4 != 0) { 92 lk4 = 1; // acquire lock 93 } else {} 94 95 if (p5 != 0) { 96 lk5 = 1; // acquire lock 97 } else {} 98 99 if (p6 != 0) { 100 lk6 = 1; // acquire lock 101 } else {} 102 103 if (p7 != 0) { 104 lk7 = 1; // acquire lock 105 } else {} 106 107 if (p8 != 0) { 108 lk8 = 1; // acquire lock 109 } else {} 110 111 if (p9 != 0) { 112 lk9 = 1; // acquire lock 113 } else {} 114 115 if (p10 != 0) { 116 lk10 = 1; // acquire lock 117 } else {} 118 119 if (p11 != 0) { 120 lk11 = 1; // acquire lock 121 } else {} 122 123 if (p12 != 0) { 124 lk12 = 1; // acquire lock 125 } else {} 126 127 128 // unlock phase 129 if (p1 != 0) { 130 if (lk1 != 1) goto ERROR; // assertion failure 131 lk1 = 0; 132 } else {} 133 134 if (p2 != 0) { 135 if (lk2 != 1) goto ERROR; // assertion failure 136 lk2 = 0; 137 } else {} 138 139 if (p3 != 0) { 140 if (lk3 != 1) goto ERROR; // assertion failure 141 lk3 = 0; 142 } else {} 143 144 if (p4 != 0) { 145 if (lk4 != 1) goto ERROR; // assertion failure 146 lk4 = 0; 147 } else {} 148 149 if (p5 != 0) { 150 if (lk5 != 1) goto ERROR; // assertion failure 151 lk5 = 0; 152 } else {} 153 154 if (p6 != 0) { 155 if (lk6 != 1) goto ERROR; // assertion failure 156 lk6 = 0; 157 } else {} 158 159 if (p7 != 0) { 160 if (lk7 != 1) goto ERROR; // assertion failure 161 lk7 = 0; 162 } else {} 163 164 if (p8 != 0) { 165 if (lk8 != 1) goto ERROR; // assertion failure 166 lk8 = 0; 167 } else {} 168 169 if (p9 != 0) { 170 if (lk9 != 1) goto ERROR; // assertion failure 171 lk9 = 0; 172 } else {} 173 174 if (p10 != 0) { 175 if (lk10 != 1) goto ERROR; // assertion failure 176 lk10 = 0; 177 } else {} 178 179 if (p11 != 0) { 180 if (lk11 != 1) goto ERROR; // assertion failure 181 lk11 = 0; 182 } else {} 183 184 if (p12 != 0) { 185 if (lk12 != 1) goto ERROR; // assertion failure 186 lk12 = 0; 187 } else {} 188 189 } 190 out: 191 return 0; 192 ERROR: 193 return 0; 194} 195