Comments (4)
What version of Clang are you using? I get an ordinary error message with Clang 10:
$ clang --version
clang version 10.0.0-4ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
$ ~/Software/crux-llvm-0.6/bin/crux-llvm test.c
[Crux] Using pointer width: 64 for file crux-build/crux~test.bc
[Crux] Simulating function main
[Crux] Attempting to prove verification conditions.
[Crux] *** debug executable: results/test/debug-4
[Crux] *** break on line: 4
[Crux] Found counterexample for verification goal
[Crux] test.c:4:11: error: in main
[Crux] Error during memory load
[Crux] No previous write to this location was found
[Crux] Attempting load at type: i64
[Crux] Performing overall load at type: i64
[Crux] Via pointer: Global symbol "stderr" (3, 0x0:[64])
[Crux] In memory state:
[Crux] Stack frame main
[Crux] No writes or allocations
[Crux] Base memory
[Crux] Allocations:
[Crux] GlobalAlloc 4 0x9:[64] Immutable 1-byte-aligned [global variable ] .str
[Crux] GlobalAlloc 3 0x8:[64] Mutable 8-byte-aligned [global variable ] stderr
[Crux] GlobalAlloc 2 0x0:[64] Immutable 1-byte-aligned [defined function ] main
[Crux] GlobalAlloc 1 0x0:[64] Immutable 1-byte-aligned [external function] fwrite
[Crux] Writes:
[Crux] Indexed chunk:
[Crux] 4 |-> *(4, 0x0:[64]) := "stderr!\n\NUL"
[Crux] in context:
[Crux] main
[Crux] Goal status:
[Crux] Total: 1
[Crux] Proved: 0
[Crux] Disproved: 1
[Crux] Incomplete: 0
[Crux] Unknown: 0
[Crux] Overall status: Invalid.
from crucible.
Oops, I apologize: you are using uc-crux-llvm
, not crux-llvm
. Never mind!
from crucible.
This seems to be happening when UC-Crux makes a "skip" override for fprintf
. In particular, I think something is going wrong at the level of translating LLVM types to Crucible types, probably specifically for varargs functions.
I think roughly what's happening is that UC-Crux is missing this kind of logic when translating function signatures.
from crucible.
Leaving this open until I add a test case.
from crucible.
Related Issues (20)
- `crucible-syntax`: Support global variables defined outside of a `.cbl` file
- crux-mir supported toolchain version too old HOT 2
- Long `crucible-jvm` initial startup times with JDK9+
- `crucible-llvm`: Support loading mostly symbolic strings
- Split out `crucible-mir` from `crux-mir`
- Adapt to recent changes in `haskell-wasm`
- `crucible-wasm`: Be more precise about file extensions
- Support opaque pointers in `crucible-llvm` and `uc-crux-llvm` HOT 8
- `crux-llvm-test`: Adapt to `-Wimplicit-function-declaration` becoming an error in Clang 15+
- Release `crux-llvm` and friends to Hackage
- crucible go lacks docs HOT 1
- `crux-mir` doesn't respect `--assert-false-on-error`
- Rename MIR modules to be consistent with Crucible's module naming conventions
- `crucible-mir`: Rename `RustModule` to `MirModule`
- Make `crux-mir` print compiler errors from `rustc`
- `crux-llvm`: Abduction tests are sensitive to CVC5 versions
- `crucible-mir`: Include stack traces in error messages
- Move copy of Rust standard libraries from `crux-mir` to `crucible-mir`
- `crux-mir`: Implement `std::collections::HashSet` in terms of `Vec`
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 crucible.