use llir::values::*;
use std::path::Path;
#[test]
fn test_load_free_struct() -> Result<(), String> {
let path = Path::new("tests/c_files/free/free_struct.bc");
let context = llir::Context::create();
let module = context.load_module(path)?;
for func in module.iter_functions() {
println!("{}, {}", func.name(), func.is_declaration_only());
for block in func.iter_blocks() {
for instr in block.iter_instructions() {
println!("{:?}", instr);
}
}
}
Ok(())
}
#[test]
fn test_load_fn_ptr_1() -> Result<(), String> {
let path = Path::new("tests/c_files/fn_ptr/fn_ptr_1.bc");
let context = llir::Context::create();
let module = context.load_module(path)?;
for func in module.iter_functions() {
println!("{}, {}", func.name(), func.is_declaration_only());
for block in func.iter_blocks() {
for instr in block.iter_instructions() {
println!("{:?}", instr.to_string());
}
}
}
Ok(())
}
#[test]
fn test_load_fn_ptr_2() -> Result<(), String> {
let path = Path::new("tests/c_files/fn_ptr/fn_ptr_1.bc");
let context = llir::Context::create();
let module = context.load_module(path)?;
for func in module.iter_functions() {
println!("{}, {}", func.name(), func.is_declaration_only());
for instr in func.iter_instructions() {
println!("{:?}", instr.to_string());
}
}
Ok(())
}