GithubHelp home page GithubHelp logo

Comments (4)

RyanGlScott avatar RyanGlScott commented on July 23, 2024

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.

RyanGlScott avatar RyanGlScott commented on July 23, 2024

Oops, I apologize: you are using uc-crux-llvm, not crux-llvm. Never mind!

from crucible.

langston-barrett avatar langston-barrett commented on July 23, 2024

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.

langston-barrett avatar langston-barrett commented on July 23, 2024

Leaving this open until I add a test case.

from crucible.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.