File tree 1 file changed +7
-6
lines changed
1 file changed +7
-6
lines changed Original file line number Diff line number Diff line change 1
1
use backtrace:: Frame ;
2
+ use core:: ffi:: c_void;
2
3
use std:: ptr;
3
4
use std:: thread;
4
5
@@ -249,11 +250,11 @@ fn sp_smoke_test() {
249
250
return ;
250
251
251
252
#[ inline( never) ]
252
- fn recursive_stack_references ( refs : & mut Vec < usize > ) {
253
+ fn recursive_stack_references ( refs : & mut Vec < * mut c_void > ) {
253
254
assert ! ( refs. len( ) < 5 ) ;
254
255
255
- let x = refs. len ( ) ;
256
- refs. push ( ptr:: addr_of !( x) as usize ) ;
256
+ let mut x = refs. len ( ) ;
257
+ refs. push ( ptr:: addr_of_mut !( x) . cast ( ) ) ;
257
258
258
259
if refs. len ( ) < 5 {
259
260
recursive_stack_references ( refs) ;
@@ -271,7 +272,7 @@ fn sp_smoke_test() {
271
272
// mangled names.
272
273
273
274
fn make_trace_closure < ' a > (
274
- refs : & ' a mut Vec < usize > ,
275
+ refs : & ' a mut Vec < * mut c_void > ,
275
276
) -> impl FnMut ( & backtrace:: Frame ) -> bool + ' a {
276
277
let mut child_sp = None ;
277
278
let mut child_ref = None ;
@@ -306,8 +307,8 @@ fn sp_smoke_test() {
306
307
307
308
if is_recursive_stack_references {
308
309
let r = refs. pop ( ) . unwrap ( ) ;
309
- eprintln ! ( "ref = {:p}" , r as * const u8 ) ;
310
- if sp != 0 {
310
+ eprintln ! ( "ref = {:p}" , r) ;
311
+ if sp as usize != 0 {
311
312
assert ! ( r > sp) ;
312
313
if let Some ( child_ref) = child_ref {
313
314
assert ! ( sp >= child_ref) ;
You can’t perform that action at this time.
0 commit comments