#[no_mangle] | |
pub fn cold_function(c: u8) { | |
println!("cold {}", c); | |
} | |
#[no_mangle] | |
pub fn hot_function(c: u8) { | |
std::env::set_var(format!("var{}", c), format!("hot {}", c)); | |
} | |
fn main() { | |
let arg = std::env::args().skip(1).next().unwrap(); | |
for i in 0..1000_000 { | |
let some_value = arg.as_bytes()[i % arg.len()]; | |
if some_value == b'!' { | |
// This branch is never taken at runtime | |
cold_function(some_value); | |
} else { | |
hot_function(some_value); | |
} | |
} | |
} |