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
Model arbitrary integer size #86
Comments
Why was this called a bug? Should Clang/LLVM not be allowed to use i24? |
After further trial, I guess that it was called a bug because SMACK does not generate declarations for |
Hi Shaobo, So far I have only seen X such that X = 1 or 1 < X <= 64 and X % 8 == 0. |
Hi Mike, Yes, I could. If bit-field is used, then LLVM may represent bit-field as arbitrary integer such as
It seems to me that field I wonder if there is a flag for clang to desugar them into byte-level operations. |
Last time I checked, 24 % 8 = 0. So I repeat: are you aware of Clang/LLVM generating an integer type which is not i1 nor divisible by 8? |
My bad... No, I'm not aware of. |
The only chance that not-divisible-by-eight integer size is generated is via struct packing, I guess. But it looks like LLVM has packed structs into fields divisible by 8. What do you propose to fix it? |
I compiled GNU coreutils 6.11 with clang and wrote an LLVM pass to check if there are not-divisible-by-eight operands in each instruction. And I got i52, i14, etc. |
I changed one of the clang flag from "O3" to "O0" and there were no not-divisible-by-eight operands. I guess that it's kind of safe to assume that all integer sizes are divisible by eight since SMACK uses "O0". |
Yeah, we have to use O0. Moving away from O0 causes all sorts of other http://zvonimir.info On Wed, May 6, 2015 at 3:36 PM, Shaobo notifications@github.com wrote:
|
No problem. If you guys need any other information such as ptrtoint/inttoptr use cases to facilitate the development, please feel free to email me. |
Hi guys, I'm working on generating SVCOMP boogie benchmarks and |
I cannot reproduce this. Please specify the exact commands and branch used to generate a BPL file with |
In svcomp2016 branch, try: |
Also for this example (I don't know if it is a valid C program), |
Let’s just include the program here for our records:
|
We are adding new integer bit-widths on-demand, as we encounter the need to support a new bit-width. I think that at this point we are supporting a good enough subset. |
It appears that LLVM generates arbitrary size integers. One examples is
ldv-linux-3.16-rc1/43_2a_bitvector_linux-3.16-rc1.tar.xz-43_2a-drivers--net--xen-netfront.ko-entry_point_true-unreach-call.cil.out.c
in svcomp repo. Variables with typei24
occur in functionnetback_changed
.The text was updated successfully, but these errors were encountered: