22
33#![ crate_type = "lib" ]  
44#![ feature( c_variadic) ]  
5+ #![ feature( unwind_attributes) ]  
56#![ no_std]  
67use  core:: ffi:: VaList ; 
78
@@ -10,6 +11,7 @@ extern "C" {
1011    fn  foreign_c_variadic_1 ( _:  VaList ,  ...) ; 
1112} 
1213
14+ #[ unwind( aborts) ]   // FIXME(#58794) 
1315pub  unsafe  extern  "C"  fn  use_foreign_c_variadic_0 ( )  { 
1416    // Ensure that we correctly call foreign C-variadic functions. 
1517    // CHECK: invoke void (i32, ...) @foreign_c_variadic_0(i32 0) 
@@ -24,20 +26,24 @@ pub unsafe extern "C" fn use_foreign_c_variadic_0() {
2426
2527// Ensure that we do not remove the `va_list` passed to the foreign function when 
2628// removing the "spoofed" `VaList` that is used by Rust defined C-variadics. 
29+ #[ unwind( aborts) ]   // FIXME(#58794) 
2730pub  unsafe  extern  "C"  fn  use_foreign_c_variadic_1_0 ( ap :  VaList )  { 
2831    // CHECK: invoke void ({{.*}}*, ...) @foreign_c_variadic_1({{.*}} %ap) 
2932    foreign_c_variadic_1 ( ap) ; 
3033} 
3134
35+ #[ unwind( aborts) ]   // FIXME(#58794) 
3236pub  unsafe  extern  "C"  fn  use_foreign_c_variadic_1_1 ( ap :  VaList )  { 
3337    // CHECK: invoke void ({{.*}}*, ...) @foreign_c_variadic_1({{.*}} %ap, i32 42) 
3438    foreign_c_variadic_1 ( ap,  42i32 ) ; 
3539} 
40+ #[ unwind( aborts) ]   // FIXME(#58794) 
3641pub  unsafe  extern  "C"  fn  use_foreign_c_variadic_1_2 ( ap :  VaList )  { 
3742    // CHECK: invoke void ({{.*}}*, ...) @foreign_c_variadic_1({{.*}} %ap, i32 2, i32 42) 
3843    foreign_c_variadic_1 ( ap,  2i32 ,  42i32 ) ; 
3944} 
4045
46+ #[ unwind( aborts) ]   // FIXME(#58794) 
4147pub  unsafe  extern  "C"  fn  use_foreign_c_variadic_1_3 ( ap :  VaList )  { 
4248    // CHECK: invoke void ({{.*}}*, ...) @foreign_c_variadic_1({{.*}} %ap, i32 2, i32 42, i32 0) 
4349    foreign_c_variadic_1 ( ap,  2i32 ,  42i32 ,  0i32 ) ; 
0 commit comments