Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
symproc: invalidate LHS objects on invalid dereference
... to simulate that invalid operations may by chance write to the target object within the allocated bounds. Nevertheless, the same situation may happen with `executeMemset()`, `executeMemmove()`, etc. With this change and `SE_ERROR_RECOVERY_MODE == 2`, Predator reports one more error in the following example: ``` % nl -ba xxx.c 1 #include <verifier-builtins.h> 2 3 int main() 4 { 5 int a[10] = {0}; 6 int i = __VERIFIER_nondet_int(); 7 a[i] = 11; 8 a[a[1]] = 1; 9 } % ./slgcc xxx.c Trying to compile xxx.c ... OK Running Predator ... xxx.c:7:10: error: invalid dereference xxx.c:8:13: error: invalid dereference cl/cl_easy.cc:83: note: clEasyRun() took 0.000 s FAILED ``` Related: #102
- Loading branch information