//! returns: 42

fn mutate1(ptr: &mut i32) {
    set *ptr = 39;
}

fn mutate2(ptr: &mut i32) {
    set *ptr += 2;
    set *ptr += 1;
}

@default fn main() -> i32 {
    let mut ptr: i32 = 0;

    mutate1(&mut ptr);
    mutate2(&mut ptr);

    return ptr;
}
