//@ 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::(); let c = args.arg::(); a + b + c // CHECK: add sp, sp }