summaryrefslogtreecommitdiffstats
path: root/tests/run-make/pgo-indirect-call-promotion/main.rs
blob: 27181f30710bbbbe05fcc0a4b7525d8699381217 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
extern crate interesting;

fn main() {
    // function pointer case
    let fns: Vec<_> = std::iter::repeat(interesting::function_called_always as fn())
        .take(1000)
        .collect();
    interesting::call_a_bunch_of_functions(&fns[..]);

    // Trait object case
    let trait_objects = vec![0u32; 1000];
    let trait_objects: Vec<_> = trait_objects.iter().map(|x| x as &dyn interesting::Foo).collect();
    interesting::call_a_bunch_of_trait_methods(&trait_objects[..]);
}