Skip to content
Snippets Groups Projects
Commit 18262cfb authored by Per Lindgren's avatar Per Lindgren
Browse files

create args and run opt

parent 4d51eeec
Branches
No related tags found
No related merge requests found
......@@ -80,7 +80,7 @@ fn main() {
// print full command for debugging purposes
eprintln!("{:?}", c);
// spawn process and drive it completion while replicating its stderr in ours
// spawn process and drive it until completion while replicating its stderr in ours
let mut p = c.spawn().unwrap();
let mut pstderr = p.stderr.take().unwrap();
let mut buf = [0; 1024];
......@@ -102,6 +102,44 @@ fn main() {
let out = parse_out(str::from_utf8(&output).unwrap());
println!("{:?}", out);
use std::fmt::Write;
let mut s = String::new();
write!(
&mut s,
"{}/{}{}.ll",
out.out_dir.expect("--out-dir missing"),
out.crate_name.expect("--crate-name missing"),
out.hash.expect("extra-filename missing")
)
.expect("internal error");
println!("s: {}", s);
let mut c = Command::new("opt");
c.arg("-analyze").arg("-print-callgraph").arg(s);
let mut p = c.spawn().unwrap();
let mut pstderr = p.stderr.take().unwrap();
let mut buf = [0; 1024];
let mut output = vec![];
let stderr = io::stderr();
let mut stderr = stderr.lock();
loop {
if let Ok(n) = pstderr.read(&mut buf) {
stderr.write(&buf[..n]).unwrap();
output.extend_from_slice(&buf[..n]);
}
if let Some(status) = p.try_wait().unwrap() {
assert!(status.success());
break;
}
}
// -analyze -print-callgraph /home/pln/rust/stack-test/target/thumbv7m-none-eabi/release/deps/stack_test-87f399c0e9e1fb93.ll
// } else {
// panic!("could not determine hash, please recompile in `--release` mode");
// }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment