-
Notifications
You must be signed in to change notification settings - Fork 435
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
The shortcomings of memcpy #1498
Comments
Yes, I also think there is a problem with the type of arr2 in the first question, including the getValue function in the second question, which returns the struct of type A. I have checked its type and it is also |
SVF seems to have not considered the handling of memcpy when two pointer types are different.
An example is as follows:
When processing the external function memcpy, the type of arr is displayed as llvm:: Type:: ArrayTyID, but the type of arr2 is llvm:: Type:: IntegerTyID
This will result in additional generated loadstmt and storestmt errors:
All values in arr should have been copied, but only one was copied here
The second issue is that when memcpy applies to the return value of a function, ae will fail. For example, Test Suite/test_cases_bc/aeassert_tests/BASICarray_fnc_2-0.c.bc
I have output the values of two parameters in svf_assert, and the result indicates that res. b is (<[- ∞, ∞], ⊥>)
Can you help fix these two issues? thank you
The text was updated successfully, but these errors were encountered: