11// compile-flags: -C no-prepopulate-passes
2+ // ignore-tidy-linelength
23
34#![ crate_type = "lib" ]
45#![ feature( c_variadic) ]
@@ -14,13 +15,13 @@ extern "C" {
1415#[ unwind( aborts) ] // FIXME(#58794)
1516pub unsafe extern "C" fn use_foreign_c_variadic_0 ( ) {
1617 // Ensure that we correctly call foreign C-variadic functions.
17- // CHECK: invoke void (i32, ...) @foreign_c_variadic_0(i32 0)
18+ // CHECK: invoke void (i32, ...) @foreign_c_variadic_0([[PARAM: i32( signext)?]] 0)
1819 foreign_c_variadic_0 ( 0 ) ;
19- // CHECK: invoke void (i32, ...) @foreign_c_variadic_0(i32 0, i32 42)
20+ // CHECK: invoke void (i32, ...) @foreign_c_variadic_0([[PARAM]] 0, [[PARAM]] 42)
2021 foreign_c_variadic_0 ( 0 , 42i32 ) ;
21- // CHECK: invoke void (i32, ...) @foreign_c_variadic_0(i32 0, i32 42, i32 1024)
22+ // CHECK: invoke void (i32, ...) @foreign_c_variadic_0([[PARAM]] 0, [[PARAM]] 42, [[PARAM]] 1024)
2223 foreign_c_variadic_0 ( 0 , 42i32 , 1024i32 ) ;
23- // CHECK: invoke void (i32, ...) @foreign_c_variadic_0(i32 0, i32 42, i32 1024, i32 0)
24+ // CHECK: invoke void (i32, ...) @foreign_c_variadic_0([[PARAM]] 0, [[PARAM]] 42, [[PARAM]] 1024, [[PARAM]] 0)
2425 foreign_c_variadic_0 ( 0 , 42i32 , 1024i32 , 0i32 ) ;
2526}
2627
@@ -34,18 +35,18 @@ pub unsafe extern "C" fn use_foreign_c_variadic_1_0(ap: VaList) {
3435
3536#[ unwind( aborts) ] // FIXME(#58794)
3637pub unsafe extern "C" fn use_foreign_c_variadic_1_1 ( ap : VaList ) {
37- // CHECK: invoke void ({{.*}}*, ...) @foreign_c_variadic_1({{.*}} %ap, i32 42)
38+ // CHECK: invoke void ({{.*}}*, ...) @foreign_c_variadic_1({{.*}} %ap, [[PARAM]] 42)
3839 foreign_c_variadic_1 ( ap, 42i32 ) ;
3940}
4041#[ unwind( aborts) ] // FIXME(#58794)
4142pub unsafe extern "C" fn use_foreign_c_variadic_1_2 ( ap : VaList ) {
42- // CHECK: invoke void ({{.*}}*, ...) @foreign_c_variadic_1({{.*}} %ap, i32 2, i32 42)
43+ // CHECK: invoke void ({{.*}}*, ...) @foreign_c_variadic_1({{.*}} %ap, [[PARAM]] 2, [[PARAM]] 42)
4344 foreign_c_variadic_1 ( ap, 2i32 , 42i32 ) ;
4445}
4546
4647#[ unwind( aborts) ] // FIXME(#58794)
4748pub unsafe extern "C" fn use_foreign_c_variadic_1_3 ( ap : VaList ) {
48- // CHECK: invoke void ({{.*}}*, ...) @foreign_c_variadic_1({{.*}} %ap, i32 2, i32 42, i32 0)
49+ // CHECK: invoke void ({{.*}}*, ...) @foreign_c_variadic_1({{.*}} %ap, [[PARAM]] 2, [[PARAM]] 42, [[PARAM]] 0)
4950 foreign_c_variadic_1 ( ap, 2i32 , 42i32 , 0i32 ) ;
5051}
5152
@@ -64,12 +65,12 @@ pub unsafe extern "C" fn c_variadic(n: i32, mut ap: ...) -> i32 {
6465// Ensure that we generate the correct `call` signature when calling a Rust
6566// defined C-variadic.
6667pub unsafe fn test_c_variadic_call ( ) {
67- // CHECK: call i32 (i32, ...) @c_variadic(i32 0)
68+ // CHECK: call [[RET:(signext )? i32]] (i32, ...) @c_variadic([[PARAM]] 0)
6869 c_variadic ( 0 ) ;
69- // CHECK: call i32 (i32, ...) @c_variadic(i32 0, i32 42)
70+ // CHECK: call [[RET]] (i32, ...) @c_variadic([[PARAM]] 0, [[PARAM]] 42)
7071 c_variadic ( 0 , 42i32 ) ;
71- // CHECK: call i32 (i32, ...) @c_variadic(i32 0, i32 42, i32 1024)
72+ // CHECK: call [[RET]] (i32, ...) @c_variadic([[PARAM]] 0, [[PARAM]] 42, [[PARAM]] 1024)
7273 c_variadic ( 0 , 42i32 , 1024i32 ) ;
73- // CHECK: call i32 (i32, ...) @c_variadic(i32 0, i32 42, i32 1024, i32 0)
74+ // CHECK: call [[RET]] (i32, ...) @c_variadic([[PARAM]] 0, [[PARAM]] 42, [[PARAM]] 1024, [[PARAM]] 0)
7475 c_variadic ( 0 , 42i32 , 1024i32 , 0i32 ) ;
7576}
0 commit comments