aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/rust/execute/torture/macros11.rs
blob: 70e5f25cf71ba5d0ff70378a8802a7e99699c18e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// { dg-output "2\r*" }
extern "C" {
    fn printf(s: *const i8, ...);
}

fn print_int(value: i32) {
    let s = "%d\n\0";
    let s_p = s as *const str;
    let c_p = s_p as *const i8;
    unsafe {
        printf(c_p, value);
    }
}

macro_rules! add_exprs {
    ($($e:expr)?) => (0 $(+ $e)?)
}

fn main() -> i32 {
    // 2
    let a = add_exprs!(2);
    print_int(a);

    0
}