|  | //@ 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 | 
|  | } |