Skip to content
Snippets Groups Projects
Commit 7772df35 authored by Per's avatar Per
Browse files

Initial commit

parents
No related branches found
No related tags found
No related merge requests found
Pipeline #214 failed
/target
**/*.rs.bk
Cargo.lock
[package]
name = "klee-sys"
version = "0.1.0"
authors = ["pln <Per Lindgren>"]
edition = "2018"
[dependencies]
cstr_core = "0.1.2"
[features]
klee-analysis = []
# klee-sys
Low-level bindings to LLVM-KLEE.
#![no_std]
// use core::intrinsics;
// use core::panic::PanicInfo;
// #[panic_handler]
// fn panic(_info: &PanicInfo) -> ! {
// unsafe { intrinsics::abort() }
// }
// #[lang = "eh_personality"]
// extern "C" fn eh_personality() {}
// extern crate cstr_core;
// // #[cfg(feature = "klee-analysis")]
// // mod lang_items;
// #[cfg(feature = "klee-analysis")]
// pub mod ll;
// #[cfg(feature = "klee-analysis")]
// use core::ffi::c_void;
// #[doc(hidden)]
// pub use cstr_core::CStr;
// /// Aborts the path in KLEE mode, does nothing otherwise
// #[macro_export]
// macro_rules! kabort {
// () => {
// #[cfg(feature = "klee-analysis")]
// unsafe { $crate::ll::abort() };
// };
// }
// #[cfg(feature = "klee-analysis")]
// pub fn kassume(cond: bool) {
// unsafe {
// ll::klee_assume(cond);
// }
// }
// #[cfg(not(feature = "klee-analysis"))]
// pub fn kassume(_cond: bool) {}
// #[cfg(feature = "klee-analysis")]
// pub fn kmksymbol<T>(t: &mut T, name: &'static CStr) {
// unsafe {
// ll::klee_make_symbolic(
// t as *mut T as *mut c_void,
// core::mem::size_of::<T>(),
// name.as_ptr(),
// )
// }
// }
// #[cfg(not(feature = "klee-analysis"))]
// pub fn kmksymbol<T>(_t: &mut T, _name: &'static CStr) {}
// #[macro_export]
// macro_rules! ksymbol {
// (&mut $id:expr, $name:expr) => {
// $crate::kmksymbol(unsafe { &mut $id }, unsafe {
// $crate::CStr::from_bytes_with_nul_unchecked(concat!($name, "\0").as_bytes())
// })
// };
// }
// /// If in KLEE mode, the assertion is made.
// /// Otherwise, this is does nothing.
// #[macro_export]
// macro_rules! kassert {
// ($e:expr) => {
// #[cfg(feature = "klee-analysis")]
// {
// if !$e {
// $crate::kabort!();
// }
// }
// };
// }
use core::ffi::c_void;
extern "C" {
pub fn abort() -> !;
pub fn klee_assume(cond: bool);
pub fn klee_make_symbolic(ptr: *mut c_void, size: usize, name: *const i8);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment