Comments (7)
Note: it is the --mem2reg flag, which we pass to llvm, that ultimately introduces these "undefined" values.
from smack.
At the moment, the only way I see to resolve this issue is to disable LLVM's mem2reg pass, which I advise against, due to the mess of additional memory operations in the code we would generate if we did.
from smack.
According to the LLVM reference manual, each "undef" should correspond to a unique uninitialized value, so actually the previous comment is irrelevant.
from smack.
I was wondering if it's still valid to assume that undefined values should hold the same value. I couldn't find any references now and intuitively they should be distinct.
from smack.
How do we translate this now?
from smack.
We create a global variable for undefined values of a type.
from smack.
If I remember this correctly, undef is between our current implementation and using verifier_nondet to model it. In particular, I think that undef in a loop for example should always evaluate to the same nondeterministic value. If that makes sense.
I can't find this discussion anywhere now.
from smack.
Related Issues (20)
- Heads up: renaming master branch into main HOT 1
- Implement a per-allocation-site memory-safety checking
- Running example with SMACK
- Multi-language model checking, on inequality modify languages to match correct model?
- Verifying Fortran Intrinsic Function ABS
- Handling thread_local variables HOT 9
- Some Rust `Box` operation is internally supported by rustc HOT 1
- Leverage `instcombine` pass
- Generalize `clang-options` into `compiler-options` HOT 1
- Upgrade Rust version to support edition 2021
- Verifying D programs
- Debug information when using LLVM IR as an input HOT 2
- How it can support ensures, requires, invariant API in Rust
- llvm2bpl report error when use smack generate boogie code
- Build issue on Ubuntu 18.04
- Unhandled LLVM intrinsic generated from math.c HOT 1
- Unhandled experimental intrinsics crash SMACK
- All programs verify when SMT solver (Z3) is not present HOT 1
- Advanced SMACK guide
- Reproduce the paper, but I can't accomplish HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from smack.