File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -481,3 +481,21 @@ public struct RefObj {
481
481
public func objectFieldToPointer( rc: RefObj ) {
482
482
takeObjectPointer ( & rc. o. object)
483
483
}
484
+
485
+ // CHECK-LABEL: sil [ossa] @$s18pointer_conversion21testVariadicParameter1aySaySiGz_tF : $@convention(thin) (@inout Array<Int>) -> ()
486
+ // CHECK: [[ARRAY_REF:%.*]] = begin_access [modify] [unknown] %0 : $*Array<Int>
487
+ // CHECK: [[CONVERT_ARRAY_TO_POINTER:%.*]] = function_ref @$ss37_convertMutableArrayToPointerArgumentyyXlSg_q_tSayxGzs01_E0R_r0_lF
488
+ // CHECK: apply [[CONVERT_ARRAY_TO_POINTER]]<Int, UnsafeMutableRawPointer>({{.*}}, [[ARRAY_REF]])
489
+ // CHECK: [[V_REF:%.*]] = begin_access [modify] [unknown] %28 : $*Double
490
+ // CHECK: [[DOUBLE_AS_PTR:%.*]] = address_to_pointer [stack_protection] [[V_REF]] : $*Double to $Builtin.RawPointer
491
+ // CHECK: [[INOUT_TO_PTR:%.*]] = function_ref @$ss30_convertInOutToPointerArgumentyxBps01_E0RzlF
492
+ // CHECK: apply [[INOUT_TO_PTR]]<UnsafeMutableRawPointer>(%39, [[DOUBLE_AS_PTR]])
493
+ // CHECK: } // end sil function '$s18pointer_conversion21testVariadicParameter1aySaySiGz_tF'
494
+ public func testVariadicParameter( a: inout [ Int ] ) {
495
+ func test( _ : UnsafeMutableRawPointer ? ... ) { }
496
+
497
+ test ( & a)
498
+
499
+ var v : Double
500
+ test ( & v)
501
+ }
You can’t perform that action at this time.
0 commit comments