[klee-dev] Unexpected Output!
Cristian Cadar
c.cadar at imperial.ac.uk
Fri Jan 24 15:32:53 GMT 2014
From what I can tell, there's nothing to prevent y+7 from overflowing
and become negative.
Cristian
On 24/01/14 15:16, General Email wrote:
> Hi,
>
> Can anybody correct me if my notice is wrong?
>
> I have the following code which should generate two symbolic execution
> paths; none of them can by satisfiable. However Klee doesn't show this!!!
>
> int main()
> {
> int attr1=100, attr2=12;
> int y;
> klee_make_symbolic(&y, sizeof(int), "y");
>
> if(y>0)
> {
> attr1=y+7;
> attr2=500;
> printf("attr2 = %d\n", attr2);
> klee_assume(attr1<0); //by all means this cannot be satisfied
> }
> else
> {
> attr2=800;
> printf("attr2 = %d\n", attr2);
> klee_assume(attr1<0); ////by all means this also cannot be satisfied
> }
> }
>
> Here is the output from Klee:
> attr2 = 800
> KLEE: ERROR: invalid klee_assume call (provably false)
> KLEE: NOTE: now ignoring this error at this location
> attr2 = 500
> //My question why it doesn't give an error saying "invalid klee_assume
> call (provably false)" here also?
> KLEE: done: total instructions = 32
> KLEE: done: completed paths = 2
> KLEE: done: generated tests = 2
>
> Here are the values of y generated in each test:
> ktest file : 'klee-last/test000001.ktest' //This represents the else
> branch (i.e., y<=0)
> object 0: name: 'y'
> object 0: size: 4
> object 0: data: 0
>
> ktest file : 'klee-last/test000002.ktest' //This represents the then
> branch (i.e., y>0)
> object 0: name: 'y'
> object 0: size: 4
> object 0: data: 2147483642
>
> Note: using klee_assert in place of klee_assume will give assertion fail
> in the two branches.
> attr2 = 800
> KLEE: ERROR: ASSERTION FAIL: attr1<0
> KLEE: NOTE: now ignoring this error at this location
> attr2 = 500
> KLEE: ERROR: ASSERTION FAIL: attr1<0
>
> Please advise?
> Thanks
>
>
> _______________________________________________
> klee-dev mailing list
> klee-dev at imperial.ac.uk
> https://mailman.ic.ac.uk/mailman/listinfo/klee-dev
>
More information about the klee-dev
mailing list