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