File tree Expand file tree Collapse file tree 3 files changed +22
-5
lines changed Expand file tree Collapse file tree 3 files changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -5882,9 +5882,7 @@ fn trans_spawn(&@block_ctxt cx,
5882
5882
e) ) ;
5883
5883
}
5884
5884
5885
- // Make the tuple. We have to reverse the types first though.
5886
- //vec::reverse[ty::t](arg_tys);
5887
- //vec::reverse[ValueRef](arg_vals);
5885
+ // Make the tuple.
5888
5886
auto args_ty = ty:: mk_imm_tup( cx. fcx. lcx. ccx. tcx, arg_tys) ;
5889
5887
5890
5888
// Allocate and fill the tuple.
Original file line number Diff line number Diff line change @@ -171,15 +171,19 @@ rust_task::start(uintptr_t spawnee_fn,
171
171
src += 1 ; // spawn-call task slot
172
172
src += 1 ; // spawn-call closure-or-obj slot
173
173
174
- *spp-- = (uintptr_t ) *src; // vec
174
+ spp -= (args_size / sizeof (uintptr_t )) - 1 ;
175
+ memmove (spp, src, args_size);
176
+ spp--;
177
+
178
+ // *spp-- = (uintptr_t) *src; // vec
179
+
175
180
*spp-- = (uintptr_t ) 0x0 ; // closure-or-obj
176
181
*spp-- = (uintptr_t ) this ; // task
177
182
*spp-- = (uintptr_t ) dummy_ret; // output address
178
183
179
184
I (dom, spp == align_down (spp));
180
185
*spp-- = (uintptr_t ) (uintptr_t ) spawnee_fn;
181
186
182
-
183
187
*spp-- = (uintptr_t ) 0x0 ; // retp
184
188
185
189
*spp-- = (uintptr_t ) rust_new_exit_task_glue;
Original file line number Diff line number Diff line change
1
+ // xfail-stage0
2
+ // xfail-stage1
3
+ // xfail-stage2
4
+ // -*- rust -*-
5
+
6
+ use std;
7
+
8
+ fn main ( ) {
9
+ spawn child ( 10 , 20 ) ;
10
+ }
11
+
12
+ fn child ( int i, int j) {
13
+ log_err i;
14
+ log_err j;
15
+ }
You can’t perform that action at this time.
0 commit comments