blob: 2ef307405e131cbb63493aab0bb9aed684fadde3 (
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
26
 | //@ assembly-output: emit-asm
//@ compile-flags: -Copt-level=3
//@ only-arm
//@ ignore-thumb
//@ ignore-android
#![no_std]
#![crate_type = "lib"]
#![feature(c_variadic)]
// Check that the assembly that rustc generates matches what clang emits.
#[unsafe(no_mangle)]
unsafe extern "C" fn variadic(a: f64, mut args: ...) -> f64 {
    // CHECK-LABEL: variadic
    // CHECK: sub sp, sp
    // CHECK: vldr
    // CHECK: vadd.f64
    // CHECK: vldr
    // CHECK: vadd.f64
    let b = args.arg::<f64>();
    let c = args.arg::<f64>();
    a + b + c
    // CHECK: add sp, sp
}
 |