about summary refs log tree commit diff
path: root/tests/run-make/raw-fn-pointer-opt-undefined-behavior/foo.rs
blob: 1007686d9fe1c2b4c17617ca9b62625cea1cd2aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
fn identity(a: &u32) -> &u32 {
    a
}

fn print_foo(f: &fn(&u32) -> &u32, x: &u32) {
    print!("{}", (*f)(x));
}

fn main() {
    let x = &4;
    let f: fn(&u32) -> &u32 = identity;

    // Didn't print 4 on optimized builds
    print_foo(&f, x);
}