diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-06-05 10:09:13 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-06-05 10:09:13 +0000 |
commit | 1c21929692bf5b6c063c3faaba9da90d04b2e332 (patch) | |
tree | 79aef6e34cb8d8ee7e603f70a6a4be6789fe08b3 /test | |
parent | 40ddb7ac71682a881d9d0cd856295d4f0240dc24 (diff) | |
download | klee-1c21929692bf5b6c063c3faaba9da90d04b2e332.tar.gz |
Support the extended query command syntax.
- There are two optional lists following the constraints and the query expression. The first is a list of expressions to give values for and the second is a list of arrays to provide values for. - Update ExprPPrinter to accept extra arguments to print these arguments. - Add Parser support. - Add more ArrayDecl support. git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@72938 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/Expr/Parser/Exprs.pc | 390 | ||||
-rw-r--r-- | test/Feature/ExprLogging.c | 7 |
2 files changed, 147 insertions, 250 deletions
diff --git a/test/Expr/Parser/Exprs.pc b/test/Expr/Parser/Exprs.pc index 3d37bf9b..9357e0c1 100644 --- a/test/Expr/Parser/Exprs.pc +++ b/test/Expr/Parser/Exprs.pc @@ -1,390 +1,288 @@ +# Taken from Features/ExprLogging.c + # FIXME: Make this test actual check for something (other than # crashing/errors). # RUN: %kleaver -print-ast %s -# Query 0 -- Type: Truth, Instructions: 33 -(query [] (Not (Ult (Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 0 -- Type: Truth, Instructions: 36 +(query [] (Not (Ult (ReadLSB w32 0 arr119) 16))) -# OK -- Elapsed: 0.000977993 +# OK -- Elapsed: 0.000962901 # Is Valid: false -# Query 1 -- Type: Value, Instructions: 41 -(query [(Ult N0:(Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 1 -- Type: Value, Instructions: 45 +(query [(Ult N0:(ReadLSB w32 0 arr119) 16)] - (Add w32 174331008 (Mul w32 4 N0))) -# OK -- Elapsed: 3.38554e-05 -# Result: 174331008 + false + [(Add w32 168649296 (Mul w32 4 N0))]) +# OK -- Elapsed: 4.09303e-05 +# Result: 168649296 -# Query 2 -- Type: Truth, Instructions: 41 -(query [(Ult N0:(Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 2 -- Type: Truth, Instructions: 45 +(query [(Ult N0:(ReadLSB w32 0 arr119) 16)] (Ult (Mul w32 4 N0) 61)) -# OK -- Elapsed: 0.00113606 +# OK -- Elapsed: 0.00111999 # Is Valid: true -# Query 3 -- Type: Truth, Instructions: 57 -(query [(Ult (Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 3 -- Type: Truth, Instructions: 66 +(query [(Ult (ReadLSB w32 0 arr119) 16)] - (Not (Ult (Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Not (Ult (ReadLSB w32 0 arr126) 16))) -# OK -- Elapsed: 0.000864983 +# OK -- Elapsed: 0.000853909 # Is Valid: false -# Query 4 -- Type: Value, Instructions: 62 -(query [(Ult (Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 4 -- Type: Value, Instructions: 72 +(query [(Ult (ReadLSB w32 0 arr119) 16) - (Ult N0:(Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Ult N0:(ReadLSB w32 0 arr126) 16)] - (Add w32 174331008 (Mul w32 4 N0))) -# OK -- Elapsed: 3.60012e-05 -# Result: 174331008 + false + [(Add w32 168649296 (Mul w32 4 N0))]) +# OK -- Elapsed: 3.89818e-05 +# Result: 168649296 -# Query 5 -- Type: Truth, Instructions: 62 -(query [(Ult (Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 5 -- Type: Truth, Instructions: 72 +(query [(Ult (ReadLSB w32 0 arr119) 16) - (Ult N0:(Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Ult N0:(ReadLSB w32 0 arr126) 16)] (Ult (Mul w32 4 N0) 61)) -# OK -- Elapsed: 0.00109196 +# OK -- Elapsed: 0.00109102 # Is Valid: true -# Query 6 -- Type: Truth, Instructions: 79 -(query [(Ult (Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 6 -- Type: Truth, Instructions: 94 +(query [(Ult (ReadLSB w32 0 arr119) 16) - (Ult (Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Ult (ReadLSB w32 0 arr126) 16)] - (Not (Ult (Concat w32 (Read w8 3 arr79) - (Concat w24 (Read w8 2 arr79) - (ReadLSB w16 0 arr79))) + (Not (Ult (ReadLSB w32 0 arr133) 16))) -# OK -- Elapsed: 0.00089097 +# OK -- Elapsed: 0.000877942 # Is Valid: false -# Query 7 -- Type: Value, Instructions: 87 -(query [(Ult (Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 7 -- Type: Value, Instructions: 103 +(query [(Ult (ReadLSB w32 0 arr119) 16) - (Ult (Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Ult (ReadLSB w32 0 arr126) 16) - (Ult N0:(Concat w32 (Read w8 3 arr79) - (Concat w24 (Read w8 2 arr79) - (ReadLSB w16 0 arr79))) + (Ult N0:(ReadLSB w32 0 arr133) 16)] - (Add w32 174331008 (Mul w32 4 N0))) -# OK -- Elapsed: 4.41074e-05 -# Result: 174331008 + false + [(Add w32 168649296 (Mul w32 4 N0))]) +# OK -- Elapsed: 4.81055e-05 +# Result: 168649296 -# Query 8 -- Type: Truth, Instructions: 87 -(query [(Ult (Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 8 -- Type: Truth, Instructions: 103 +(query [(Ult (ReadLSB w32 0 arr119) 16) - (Ult (Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Ult (ReadLSB w32 0 arr126) 16) - (Ult N0:(Concat w32 (Read w8 3 arr79) - (Concat w24 (Read w8 2 arr79) - (ReadLSB w16 0 arr79))) + (Ult N0:(ReadLSB w32 0 arr133) 16)] (Ult (Mul w32 4 N0) 61)) -# OK -- Elapsed: 0.00111794 +# OK -- Elapsed: 0.00110997 # Is Valid: true -# Query 9 -- Type: Truth, Instructions: 103 -(query [(Ult (Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 9 -- Type: Truth, Instructions: 124 +(query [(Ult (ReadLSB w32 0 arr119) 16) - (Ult (Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Ult (ReadLSB w32 0 arr126) 16) - (Ult (Concat w32 (Read w8 3 arr79) - (Concat w24 (Read w8 2 arr79) - (ReadLSB w16 0 arr79))) + (Ult (ReadLSB w32 0 arr133) 16)] (And (Not (Eq 3 - N0:(Concat w32 (Read w8 3 arr86) - (Concat w24 (Read w8 2 arr86) - (ReadLSB w16 0 arr86))))) + N0:(ReadLSB w32 0 arr140))) (And (Not (Eq 2 N0)) (And (Not (Eq 1 N0)) (Not (Eq 0 N0)))))) -# OK -- Elapsed: 0.00117898 +# OK -- Elapsed: 0.00117305 # Is Valid: false -# Query 10 -- Type: Value, Instructions: 108 -(query [(Ult (Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 10 -- Type: Value, Instructions: 130 +(query [(Ult (ReadLSB w32 0 arr119) 16) - (Ult (Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Ult (ReadLSB w32 0 arr126) 16) - (Ult (Concat w32 (Read w8 3 arr79) - (Concat w24 (Read w8 2 arr79) - (ReadLSB w16 0 arr79))) + (Ult (ReadLSB w32 0 arr133) 16) (Not (And (Not (Eq 3 - N0:(Concat w32 (Read w8 3 arr86) - (Concat w24 (Read w8 2 arr86) - (ReadLSB w16 0 arr86))))) + N0:(ReadLSB w32 0 arr140))) (And (Not (Eq 2 N0)) (And (Not (Eq 1 N0)) (Not (Eq 0 N0))))))] - (Add w32 174291904 N0)) -# OK -- Elapsed: 5.91278e-05 -# Result: 174291907 + false + [(Add w32 168742656 N0)]) +# OK -- Elapsed: 6.11061e-05 +# Result: 168742659 -# Query 11 -- Type: Truth, Instructions: 108 -(query [(Ult (Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 11 -- Type: Truth, Instructions: 130 +(query [(Ult (ReadLSB w32 0 arr119) 16) - (Ult (Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Ult (ReadLSB w32 0 arr126) 16) - (Ult (Concat w32 (Read w8 3 arr79) - (Concat w24 (Read w8 2 arr79) - (ReadLSB w16 0 arr79))) + (Ult (ReadLSB w32 0 arr133) 16) (Not (And (Not N0:(Eq 3 - N1:(Concat w32 (Read w8 3 arr86) - (Concat w24 (Read w8 2 arr86) - (ReadLSB w16 0 arr86))))) + N1:(ReadLSB w32 0 arr140))) (And (Not N2:(Eq 2 N1)) (And (Not N3:(Eq 1 N1)) (Not N4:(Eq 0 N1))))))] (Or N0 (Or N2 (Or N3 N4)))) -# OK -- Elapsed: 0.00145888 +# OK -- Elapsed: 0.00146289 # Is Valid: true -# Query 12 -- Type: Truth, Instructions: 114 -(query [(Ult (Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 12 -- Type: Truth, Instructions: 136 +(query [(Ult (ReadLSB w32 0 arr119) 16) - (Ult (Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Ult (ReadLSB w32 0 arr126) 16) - (Ult (Concat w32 (Read w8 3 arr79) - (Concat w24 (Read w8 2 arr79) - (ReadLSB w16 0 arr79))) + (Ult (ReadLSB w32 0 arr133) 16) (Not (And (Not (Eq 3 - N0:(Concat w32 (Read w8 3 arr86) - (Concat w24 (Read w8 2 arr86) - (ReadLSB w16 0 arr86))))) + N0:(ReadLSB w32 0 arr140))) (And (Not (Eq 2 N0)) (And (Not (Eq 1 N0)) (Not (Eq 0 N0))))))] (Not (Eq 104 (Read w8 0 [N0=0, - 1=97] @ arr60)))) -# OK -- Elapsed: 0.00247502 + 1=97] @ arr115)))) +# OK -- Elapsed: 0.00246791 # Is Valid: false -# Query 13 -- Type: Truth, Instructions: 124 -(query [(Ult (Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 13 -- Type: Truth, Instructions: 146 +(query [(Ult (ReadLSB w32 0 arr119) 16) - (Ult (Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Ult (ReadLSB w32 0 arr126) 16) - (Ult (Concat w32 (Read w8 3 arr79) - (Concat w24 (Read w8 2 arr79) - (ReadLSB w16 0 arr79))) + (Ult (ReadLSB w32 0 arr133) 16) (Not (And (Not (Eq 3 - N0:(Concat w32 (Read w8 3 arr86) - (Concat w24 (Read w8 2 arr86) - (ReadLSB w16 0 arr86))))) + N0:(ReadLSB w32 0 arr140))) (And (Not (Eq 2 N0)) (And (Not (Eq 1 N0)) (Not (Eq 0 N0)))))) (Eq 104 (Read w8 0 U0:[N0=0, - 1=97] @ arr60))] + 1=97] @ arr115))] (Not (Slt 2 (Concat w32 (Read w8 3 U0) (Concat w24 (Read w8 2 U0) (Concat w16 (Read w8 1 U0) (w8 104))))))) -# OK -- Elapsed: 0.000127077 +# OK -- Elapsed: 0.000145945 # Is Valid: false -# Query 14 -- Type: Truth, Instructions: 130 -(query [(Ult N0:(Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 14 -- Type: Truth, Instructions: 152 +(query [(Ult N0:(ReadLSB w32 0 arr119) 16) - (Ult (Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Ult (ReadLSB w32 0 arr126) 16) - (Ult N1:(Concat w32 (Read w8 3 arr79) - (Concat w24 (Read w8 2 arr79) - (ReadLSB w16 0 arr79))) + (Ult N1:(ReadLSB w32 0 arr133) 16) (Not (And (Not (Eq 3 - N2:(Concat w32 (Read w8 3 arr86) - (Concat w24 (Read w8 2 arr86) - (ReadLSB w16 0 arr86))))) + N2:(ReadLSB w32 0 arr140))) (And (Not (Eq 2 N2)) (And (Not (Eq 1 N2)) (Not (Eq 0 N2)))))) (Eq 104 (Read w8 0 U0:[N2=0, - 1=97] @ arr60)) + 1=97] @ arr115)) (Slt 2 N3:(Concat w32 (Read w8 3 U0) (Concat w24 (Read w8 2 U0) (Concat w16 (Read w8 1 U0) (w8 104)))))] - (Not (Eq (Concat w32 (Read w8 51 U1:[N4:(Mul w32 4 N1)=(Extract w8 0 N5:(SExt w32 (Read w8 3 arr60))), - (Add w32 1 N4)=(Extract w8 8 N5), - (Add w32 2 N4)=(Extract w8 16 N5), - (Add w32 3 N4)=(Extract w8 24 N5), - N6:(Mul w32 4 N0)=(Extract w8 0 N7:(SExt w32 (Read w8 0 arr60))), - (Add w32 1 N6)=(Extract w8 8 N7), - (Add w32 2 N6)=(Extract w8 16 N7), - (Add w32 3 N6)=(Extract w8 24 N7), - 63=0, 62=0, 61=128, 60=0, 59=0, 58=0, 57=64, 56=0, 55=0, 54=0, 53=32, 52=0, 51=0, 50=0, 49=16, 48=0, 47=0, 46=0, 45=8, 44=0, 43=0, 42=0, 41=4, 40=0, 39=0, 38=0, 37=2, 36=0, 35=0, 34=0, 33=1, 32=0, 31=0, 30=0, 29=0, 28=128, 27=0, 26=0, 25=0, 24=64, 23=0, 22=0, 21=0, 20=32, 19=0, 18=0, 17=0, 16=16, 15=0, 14=0, 13=0, 12=8, 11=0, 10=0, 9=0, 8=4, 7=0, 6=0, 5=0, 4=2, 3=0, 2=0, 1=0, 0=1]) - (Concat w24 (Read w8 50 U1) - (ReadLSB w16 48 U1))) + (Not (Eq (ReadLSB w32 48 U1:[N4:(Mul w32 4 N1)=(Extract w8 0 N5:(SExt w32 (Read w8 3 arr115))), + (Add w32 1 N4)=(Extract w8 8 N5), + (Add w32 2 N4)=(Extract w8 16 N5), + (Add w32 3 N4)=(Extract w8 24 N5), + N6:(Mul w32 4 N0)=(Extract w8 0 N7:(SExt w32 (Read w8 0 arr115))), + (Add w32 1 N6)=(Extract w8 8 N7), + (Add w32 2 N6)=(Extract w8 16 N7), + (Add w32 3 N6)=(Extract w8 24 N7), + 63=0, 62=0, 61=128, 60=0, 59=0, 58=0, 57=64, 56=0, 55=0, 54=0, 53=32, 52=0, 51=0, 50=0, 49=16, 48=0, 47=0, 46=0, 45=8, 44=0, 43=0, 42=0, 41=4, 40=0, 39=0, 38=0, 37=2, 36=0, 35=0, 34=0, 33=1, 32=0, 31=0, 30=0, 29=0, 28=128, 27=0, 26=0, 25=0, 24=64, 23=0, 22=0, 21=0, 20=32, 19=0, 18=0, 17=0, 16=16, 15=0, 14=0, 13=0, 12=8, 11=0, 10=0, 9=0, 8=4, 7=0, 6=0, 5=0, 4=2, 3=0, 2=0, 1=0, 0=1]) N3))) -# OK -- Elapsed: 0.0158381 +# OK -- Elapsed: 0.016117 # Is Valid: false -# Query 15 -- Type: Truth, Instructions: 135 -(query [(Ult N0:(Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 15 -- Type: Truth, Instructions: 157 +(query [(Ult N0:(ReadLSB w32 0 arr119) 16) - (Ult N1:(Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Ult N1:(ReadLSB w32 0 arr126) 16) - (Ult N2:(Concat w32 (Read w8 3 arr79) - (Concat w24 (Read w8 2 arr79) - (ReadLSB w16 0 arr79))) + (Ult N2:(ReadLSB w32 0 arr133) 16) (Not (And (Not (Eq 3 - N3:(Concat w32 (Read w8 3 arr86) - (Concat w24 (Read w8 2 arr86) - (ReadLSB w16 0 arr86))))) + N3:(ReadLSB w32 0 arr140))) (And (Not (Eq 2 N3)) (And (Not (Eq 1 N3)) (Not (Eq 0 N3)))))) (Eq 104 (Read w8 0 U0:[N3=0, - 1=97] @ arr60)) + 1=97] @ arr115)) (Slt 2 N4:(Concat w32 (Read w8 3 U0) (Concat w24 (Read w8 2 U0) (Concat w16 (Read w8 1 U0) (w8 104))))) - (Eq (Concat w32 (Read w8 51 U1:[N5:(Mul w32 4 N2)=(Extract w8 0 N6:(SExt w32 (Read w8 3 arr60))), - (Add w32 1 N5)=(Extract w8 8 N6), - (Add w32 2 N5)=(Extract w8 16 N6), - (Add w32 3 N5)=(Extract w8 24 N6)] @ - U2:[N7:(Mul w32 4 N0)=(Extract w8 0 N8:(SExt w32 (Read w8 0 arr60))), - (Add w32 1 N7)=(Extract w8 8 N8), - (Add w32 2 N7)=(Extract w8 16 N8), - (Add w32 3 N7)=(Extract w8 24 N8), - 63=0, 62=0, 61=128, 60=0, 59=0, 58=0, 57=64, 56=0, 55=0, 54=0, 53=32, 52=0, 51=0, 50=0, 49=16, 48=0, 47=0, 46=0, 45=8, 44=0, 43=0, 42=0, 41=4, 40=0, 39=0, 38=0, 37=2, 36=0, 35=0, 34=0, 33=1, 32=0, 31=0, 30=0, 29=0, 28=128, 27=0, 26=0, 25=0, 24=64, 23=0, 22=0, 21=0, 20=32, 19=0, 18=0, 17=0, 16=16, 15=0, 14=0, 13=0, 12=8, 11=0, 10=0, 9=0, 8=4, 7=0, 6=0, 5=0, 4=2, 3=0, 2=0, 1=0, 0=1]) - (Concat w24 (Read w8 50 U1) - (ReadLSB w16 48 U1))) + (Eq (ReadLSB w32 48 U1:[N5:(Mul w32 4 N2)=(Extract w8 0 N6:(SExt w32 (Read w8 3 arr115))), + (Add w32 1 N5)=(Extract w8 8 N6), + (Add w32 2 N5)=(Extract w8 16 N6), + (Add w32 3 N5)=(Extract w8 24 N6)] @ + U2:[N7:(Mul w32 4 N0)=(Extract w8 0 N8:(SExt w32 (Read w8 0 arr115))), + (Add w32 1 N7)=(Extract w8 8 N8), + (Add w32 2 N7)=(Extract w8 16 N8), + (Add w32 3 N7)=(Extract w8 24 N8), + 63=0, 62=0, 61=128, 60=0, 59=0, 58=0, 57=64, 56=0, 55=0, 54=0, 53=32, 52=0, 51=0, 50=0, 49=16, 48=0, 47=0, 46=0, 45=8, 44=0, 43=0, 42=0, 41=4, 40=0, 39=0, 38=0, 37=2, 36=0, 35=0, 34=0, 33=1, 32=0, 31=0, 30=0, 29=0, 28=128, 27=0, 26=0, 25=0, 24=64, 23=0, 22=0, 21=0, 20=32, 19=0, 18=0, 17=0, 16=16, 15=0, 14=0, 13=0, 12=8, 11=0, 10=0, 9=0, 8=4, 7=0, 6=0, 5=0, 4=2, 3=0, 2=0, 1=0, 0=1]) N4)] (Eq 32 - (Concat w32 (Read w8 (Add w32 3 N9:(Mul w32 4 N1)) - U2) - (Concat w24 (Read w8 (Add w32 2 N9) - U2) - (ReadLSB w16 N9 U2))))) -# OK -- Elapsed: 0.000321865 + (ReadLSB w32 N9:(Mul w32 4 N1) U2))) +# OK -- Elapsed: 0.00037605 # Is Valid: false -# Query 16 -- Type: InitialValues, Instructions: 137 -(query [(Ult N0:(Concat w32 (Read w8 3 arr65) - (Concat w24 (Read w8 2 arr65) - (ReadLSB w16 0 arr65))) +# Query 16 -- Type: InitialValues, Instructions: 159 +(query [(Ult N0:(ReadLSB w32 0 arr119) 16) - (Ult N1:(Concat w32 (Read w8 3 arr72) - (Concat w24 (Read w8 2 arr72) - (ReadLSB w16 0 arr72))) + (Ult N1:(ReadLSB w32 0 arr126) 16) - (Ult N2:(Concat w32 (Read w8 3 arr79) - (Concat w24 (Read w8 2 arr79) - (ReadLSB w16 0 arr79))) + (Ult N2:(ReadLSB w32 0 arr133) 16) (Not (And (Not (Eq 3 - N3:(Concat w32 (Read w8 3 arr86) - (Concat w24 (Read w8 2 arr86) - (ReadLSB w16 0 arr86))))) + N3:(ReadLSB w32 0 arr140))) (And (Not (Eq 2 N3)) (And (Not (Eq 1 N3)) (Not (Eq 0 N3)))))) (Eq 104 (Read w8 0 U0:[N3=0, - 1=97] @ arr60)) + 1=97] @ arr115)) (Slt 2 N4:(Concat w32 (Read w8 3 U0) (Concat w24 (Read w8 2 U0) (Concat w16 (Read w8 1 U0) (w8 104))))) - (Eq (Concat w32 (Read w8 51 U1:[N5:(Mul w32 4 N2)=(Extract w8 0 N6:(SExt w32 (Read w8 3 arr60))), - (Add w32 1 N5)=(Extract w8 8 N6), - (Add w32 2 N5)=(Extract w8 16 N6), - (Add w32 3 N5)=(Extract w8 24 N6)] @ - U2:[N7:(Mul w32 4 N0)=(Extract w8 0 N8:(SExt w32 (Read w8 0 arr60))), - (Add w32 1 N7)=(Extract w8 8 N8), - (Add w32 2 N7)=(Extract w8 16 N8), - (Add w32 3 N7)=(Extract w8 24 N8), - 63=0, 62=0, 61=128, 60=0, 59=0, 58=0, 57=64, 56=0, 55=0, 54=0, 53=32, 52=0, 51=0, 50=0, 49=16, 48=0, 47=0, 46=0, 45=8, 44=0, 43=0, 42=0, 41=4, 40=0, 39=0, 38=0, 37=2, 36=0, 35=0, 34=0, 33=1, 32=0, 31=0, 30=0, 29=0, 28=128, 27=0, 26=0, 25=0, 24=64, 23=0, 22=0, 21=0, 20=32, 19=0, 18=0, 17=0, 16=16, 15=0, 14=0, 13=0, 12=8, 11=0, 10=0, 9=0, 8=4, 7=0, 6=0, 5=0, 4=2, 3=0, 2=0, 1=0, 0=1]) - (Concat w24 (Read w8 50 U1) - (ReadLSB w16 48 U1))) + (Eq (ReadLSB w32 48 U1:[N5:(Mul w32 4 N2)=(Extract w8 0 N6:(SExt w32 (Read w8 3 arr115))), + (Add w32 1 N5)=(Extract w8 8 N6), + (Add w32 2 N5)=(Extract w8 16 N6), + (Add w32 3 N5)=(Extract w8 24 N6)] @ + U2:[N7:(Mul w32 4 N0)=(Extract w8 0 N8:(SExt w32 (Read w8 0 arr115))), + (Add w32 1 N7)=(Extract w8 8 N8), + (Add w32 2 N7)=(Extract w8 16 N8), + (Add w32 3 N7)=(Extract w8 24 N8), + 63=0, 62=0, 61=128, 60=0, 59=0, 58=0, 57=64, 56=0, 55=0, 54=0, 53=32, 52=0, 51=0, 50=0, 49=16, 48=0, 47=0, 46=0, 45=8, 44=0, 43=0, 42=0, 41=4, 40=0, 39=0, 38=0, 37=2, 36=0, 35=0, 34=0, 33=1, 32=0, 31=0, 30=0, 29=0, 28=128, 27=0, 26=0, 25=0, 24=64, 23=0, 22=0, 21=0, 20=32, 19=0, 18=0, 17=0, 16=16, 15=0, 14=0, 13=0, 12=8, 11=0, 10=0, 9=0, 8=4, 7=0, 6=0, 5=0, 4=2, 3=0, 2=0, 1=0, 0=1]) N4) (Not (Eq 32 - (Concat w32 (Read w8 (Add w32 3 N9:(Mul w32 4 N1)) - U2) - (Concat w24 (Read w8 (Add w32 2 N9) - U2) - (ReadLSB w16 N9 U2)))))] - false) -# OK -- Elapsed: 0.000178814 + (ReadLSB w32 N9:(Mul w32 4 N1) U2)))] + false [] + [arr115 + arr119 + arr126 + arr133 + arr140]) +# OK -- Elapsed: 0.000240058 # Solvable: true -# arr60 = [104,0,0,0] -# arr65 = [12,0,0,0] -# arr72 = [0,0,0,0] -# arr79 = [0,0,0,0] -# arr86 = [1,0,0,0] +# arr115 = [104,0,0,0] +# arr119 = [12,0,0,0] +# arr126 = [0,0,0,0] +# arr133 = [0,0,0,0] +# arr140 = [1,0,0,0] + diff --git a/test/Feature/ExprLogging.c b/test/Feature/ExprLogging.c index 2abf0070..2329279d 100644 --- a/test/Feature/ExprLogging.c +++ b/test/Feature/ExprLogging.c @@ -1,9 +1,8 @@ // RUN: %llvmgcc %s -emit-llvm -g -O0 -c -o %t1.bc // RUN: %klee --use-query-pc-log --write-pcs --write-cvcs %t1.bc 2> %t2.log -// RUN: %kleaver -print-ast klee-last/test000001.pc - -// FIXME: Ideally we would verify a roundtrip that we parsed the pc -// file and can dump it back out as the same file. +// RUN: %kleaver -print-ast klee-last/queries.pc > %t3.log +// RUN: %kleaver -print-ast %t3.log > %t4.log +// RUN: diff %t3.log %t4.log #include <assert.h> |