File tree Expand file tree Collapse file tree 4 files changed +36
-0
lines changed Expand file tree Collapse file tree 4 files changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -134,6 +134,8 @@ pub mod ffi {
134134 fn c_take_ref_c ( c : & C ) ;
135135 fn c_take_opt_ref_r ( r : Option < & R > ) ;
136136 fn c_take_opt_mut_r ( r : Option < & mut R > ) ;
137+ fn c_take_opt_ref_c ( r : Option < & C > ) ;
138+ fn c_take_opt_mut_c ( r : Option < Pin < & mut C > > ) ;
137139 fn c_take_str ( s : & str ) ;
138140 fn c_take_slice_char ( s : & [ c_char ] ) ;
139141 fn c_take_slice_shared ( s : & [ Shared ] ) ;
Original file line number Diff line number Diff line change @@ -35,6 +35,10 @@ pub mod ffi2 {
3535 fn c_take_trivial_mut_ref ( d : & mut D ) ;
3636 fn c_take_trivial_pin_ref ( d : Pin < & D > ) ;
3737 fn c_take_trivial_pin_mut_ref ( d : Pin < & mut D > ) ;
38+ fn c_take_trivial_opt_ref ( d : Option < & D > ) ;
39+ fn c_take_trivial_opt_mut_ref ( d : Option < & mut D > ) ;
40+ fn c_take_trivial_opt_pin_ref ( d : Option < Pin < & D > > ) ;
41+ fn c_take_trivial_opt_pin_mut_ref ( d : Option < Pin < & mut D > > ) ;
3842 fn c_take_trivial_ref_method ( self : & D ) ;
3943 fn c_take_trivial_mut_ref_method ( self : & mut D ) ;
4044 fn c_take_trivial ( d : D ) ;
Original file line number Diff line number Diff line change @@ -289,6 +289,22 @@ void c_take_opt_mut_r(R *r) {
289289 }
290290}
291291
292+ void c_take_opt_ref_c (const C *c) {
293+ if (c) {
294+ c_take_ref_c (*c);
295+ } else {
296+ cxx_test_suite_set_correct ();
297+ }
298+ }
299+
300+ void c_take_opt_mut_c (C *c) {
301+ if (c) {
302+ c_take_ref_c (*c);
303+ } else {
304+ cxx_test_suite_set_correct ();
305+ }
306+ }
307+
292308void c_take_ref_ns_c (const ::H::H &h) {
293309 if (h.h == " hello" ) {
294310 cxx_test_suite_set_correct ();
@@ -640,6 +656,14 @@ void c_take_trivial_pin_ref(const D &d) { (void)d; }
640656
641657void c_take_trivial_pin_mut_ref (D &d) { (void )d; }
642658
659+ void c_take_trivial_opt_ref (const D *d) { (void )d; }
660+
661+ void c_take_trivial_opt_mut_ref (D *d) { (void )d; }
662+
663+ void c_take_trivial_opt_pin_ref (const D *d) { (void )d; }
664+
665+ void c_take_trivial_opt_pin_mut_ref (D *d) { (void )d; }
666+
643667void D::c_take_trivial_ref_method () const {
644668 if (d == 30 ) {
645669 cxx_test_suite_set_correct ();
Original file line number Diff line number Diff line change @@ -133,6 +133,8 @@ void c_take_ref_r(const R &r);
133133void c_take_ref_c (const C &c);
134134void c_take_opt_ref_r (const R *r);
135135void c_take_opt_mut_r (R *r);
136+ void c_take_opt_ref_c (const C *c);
137+ void c_take_opt_mut_c (C *c);
136138void c_take_ref_ns_c (const ::H::H &h);
137139void c_take_str (rust::Str s);
138140void c_take_slice_char (rust::Slice<const char > s);
@@ -193,6 +195,10 @@ void c_take_trivial_ref(const D &d);
193195void c_take_trivial_mut_ref (D &d);
194196void c_take_trivial_pin_ref (const D &d);
195197void c_take_trivial_pin_mut_ref (D &d);
198+ void c_take_trivial_opt_ref (const D *d);
199+ void c_take_trivial_opt_mut_ref (D *d);
200+ void c_take_trivial_opt_pin_ref (const D *d);
201+ void c_take_trivial_opt_pin_mut_ref (D *d);
196202void c_take_trivial (D d);
197203
198204void c_take_trivial_ns_ptr (std::unique_ptr<::G::G> g);
You can’t perform that action at this time.
0 commit comments