11//! feature_c_variadic,
22
3+ use crate :: varargs:: rust_call_printf;
4+ // See #1281. Varargs don't yet work on aarch64.
5+ #[ cfg( not( target_arch = "aarch64" ) ) ]
36use crate :: varargs:: {
4- rust_call_printf , rust_call_vprintf, rust_my_printf, rust_restart_valist, rust_sample_stddev,
5- rust_simple_vacopy , rust_valist_struct_member, rust_valist_struct_pointer_member,
7+ rust_call_vprintf, rust_my_printf, rust_restart_valist, rust_sample_stddev, rust_simple_vacopy ,
8+ rust_valist_struct_member, rust_valist_struct_pointer_member,
69} ;
710
811use std:: ffi:: c_char;
@@ -11,7 +14,12 @@ use std::ffi::CString;
1114#[ link( name = "test" ) ]
1215extern "C" {
1316 fn call_printf ( ) ;
17+ }
1418
19+ // See #1281. Varargs don't yet work on aarch64.
20+ #[ cfg( not( target_arch = "aarch64" ) ) ]
21+ #[ link( name = "test" ) ]
22+ extern "C" {
1523 fn call_vprintf ( _: * const c_char , ...) ;
1624
1725 fn my_printf ( _: * const c_char , ...) ;
@@ -37,6 +45,7 @@ pub fn test_call_printf() {
3745}
3846
3947// Make sure we can pass through va_list arguments
48+ #[ cfg( not( target_arch = "aarch64" ) ) ]
4049pub fn test_call_vprintf ( ) {
4150 let fmt_str = CString :: new ( "%d, %f\n " ) . unwrap ( ) ;
4251 unsafe {
@@ -46,6 +55,7 @@ pub fn test_call_vprintf() {
4655}
4756
4857// Test out a small varargs function definition
58+ #[ cfg( not( target_arch = "aarch64" ) ) ]
4959pub fn test_my_printf ( ) {
5060 let fmt_str = CString :: new ( "%d, %f, %s\n " ) . unwrap ( ) ;
5161 let test_str = CString :: new ( "test" ) . unwrap ( ) ;
@@ -55,6 +65,7 @@ pub fn test_my_printf() {
5565 }
5666}
5767
68+ #[ cfg( not( target_arch = "aarch64" ) ) ]
5869pub fn test_simple_vacopy ( ) {
5970 let fmt_str = CString :: new ( "%d, %f\n " ) . unwrap ( ) ;
6071 unsafe {
@@ -63,6 +74,7 @@ pub fn test_simple_vacopy() {
6374 }
6475}
6576
77+ #[ cfg( not( target_arch = "aarch64" ) ) ]
6678pub fn test_valist_struct_member ( ) {
6779 let fmt_str = CString :: new ( "%d, %f\n " ) . unwrap ( ) ;
6880 unsafe {
@@ -71,6 +83,7 @@ pub fn test_valist_struct_member() {
7183 }
7284}
7385
86+ #[ cfg( not( target_arch = "aarch64" ) ) ]
7487pub fn test_valist_struct_pointer_member ( ) {
7588 let fmt_str = CString :: new ( "%d, %f\n " ) . unwrap ( ) ;
7689 unsafe {
@@ -79,6 +92,7 @@ pub fn test_valist_struct_pointer_member() {
7992 }
8093}
8194
95+ #[ cfg( not( target_arch = "aarch64" ) ) ]
8296pub fn test_restart_valist ( ) {
8397 let fmt_str = CString :: new ( "%d, %f\n " ) . unwrap ( ) ;
8498 unsafe {
@@ -87,6 +101,7 @@ pub fn test_restart_valist() {
87101 }
88102}
89103
104+ #[ cfg( not( target_arch = "aarch64" ) ) ]
90105pub fn test_sample_stddev ( ) {
91106 unsafe {
92107 let c_res = sample_stddev ( 4 , 25.0 , 27.3 , 26.9 , 25.7 ) ;
0 commit comments