Skip to content
This repository has been archived by the owner on Jul 31, 2023. It is now read-only.

Add support for LLVM-based verification tools #27

Open
2 of 5 tasks
alastairreid opened this issue Sep 11, 2020 · 0 comments
Open
2 of 5 tasks

Add support for LLVM-based verification tools #27

alastairreid opened this issue Sep 11, 2020 · 0 comments
Labels
enhancement New feature or request KLEE KLEE support LLVM Affects LLVM-based verifiers SeaHorn SeaHorn support SMACK SMACK support

Comments

@alastairreid
Copy link
Contributor

alastairreid commented Sep 11, 2020

List of LLVM-based verifiers that we know of (edit this issue to add new ones)

Some typical steps involved (edit this issue if new ones are found)

  • Figure out how to invoke verifier directly on bitcode file (e.g., see docs/using-klee.md)
  • Handle unimplemented LLVM intrinsics
  • Make sure that weak symbols are supported (e.g., see Handle global variables klee/klee#1271 ?) (This affects 'atexit' support)
  • Handle libc/etc dependencies in libcore/libstd including
    • memory allocator
    • syscalls
    • pthread functions
  • Create FFI binding for verification annotation API
  • Add support to scripts/cargo-verify
    • New/different flags for compiling Rust code
    • Invoke verifier
      • Filter stdout/stderr to discover verification result
      • Filter stdout/stderr to decide what tool output to produce at each verbosity level
    • If counterexamples are generated by tool, add "replay" support to display cex using Rust print functions
@alastairreid alastairreid changed the title Add support for more LLVM-based verification tools Add support for LLVM-based verification tools Sep 11, 2020
@alastairreid alastairreid added enhancement New feature or request KLEE KLEE support SeaHorn SeaHorn support SMACK SMACK support labels Sep 11, 2020
@alastairreid alastairreid added the LLVM Affects LLVM-based verifiers label Oct 9, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request KLEE KLEE support LLVM Affects LLVM-based verifiers SeaHorn SeaHorn support SMACK SMACK support
Projects
None yet
Development

No branches or pull requests

1 participant