-
Notifications
You must be signed in to change notification settings - Fork 6
Concolic driver #85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Concolic driver #85
Conversation
|
This PR is still a work in progress. I’d like to discuss something about path exploration in today’s meeting. |
| i32.const 1 | ||
| else | ||
| i32.const 0 | ||
| call 2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
might be worth trying to call 2 in the x^2 + y^2 = 25 branch since it's easier to check the results. (also concolic execution allegedly tries to deal with this kinda of non-linear constraint (eg: https://faculty.sist.shanghaitech.edu.cn/faculty/songfu/cav/CT-slides.pdf)
PS: they seem to take the example from CACM https://dl.acm.org/doi/fullHtml/10.1145/2408776.2408795
|
Also, in the logs, I saw the following output: Where does the |
It comes from the second |
I see in a sense the exploration tree is different from the original int f(int x, int y) {
if (x <= 0 || y <= 0) return -1;
if (x * x + y * y == 25) {
// x = 3, y = 4
return 1;
}
return 0;
}changes to something like int f(int x, int y) {
int cond;
if (x <= 0) {
cond = 1;
} else {
cond = (y <= 0);
}
if (cond) {
return 1;
}
if (x * x + y * y == 25) {
// x = 3, y = 4
return 1;
}
return 0;
}TBH I might fall back to using |
That just looks like because compiling to webassembly changes the control-flow structure? |
But in the previous program I can hardly imagine something like |
cf05bd0 to
c0cb648
Compare
No description provided.