@@ -85,6 +85,13 @@ impl VisitTags for FrameExtra<'_> {
85
85
catch_unwind. visit_tags ( visit) ;
86
86
borrow_tracker. visit_tags ( visit) ;
87
87
}
88
+
89
+ fn visit_prov ( & self , visit : & mut dyn FnMut ( AllocId ) ) {
90
+ let FrameExtra { catch_unwind, borrow_tracker, timing : _, is_user_relevant : _ } = self ;
91
+
92
+ catch_unwind. visit_prov ( visit) ;
93
+ borrow_tracker. visit_prov ( visit) ;
94
+ }
88
95
}
89
96
90
97
/// Extra memory kinds
@@ -302,6 +309,14 @@ impl VisitTags for AllocExtra<'_> {
302
309
data_race. visit_tags ( visit) ;
303
310
weak_memory. visit_tags ( visit) ;
304
311
}
312
+
313
+ fn visit_prov ( & self , visit : & mut dyn FnMut ( AllocId ) ) {
314
+ let AllocExtra { borrow_tracker, data_race, weak_memory, backtrace : _ } = self ;
315
+
316
+ borrow_tracker. visit_prov ( visit) ;
317
+ data_race. visit_prov ( visit) ;
318
+ weak_memory. visit_prov ( visit) ;
319
+ }
305
320
}
306
321
307
322
/// Precomputed layouts of primitive types
@@ -843,6 +858,72 @@ impl VisitTags for MiriMachine<'_, '_> {
843
858
ptr. visit_tags ( visit) ;
844
859
}
845
860
}
861
+
862
+ fn visit_prov ( & self , visit : & mut dyn FnMut ( AllocId ) ) {
863
+ #[ rustfmt:: skip]
864
+ let MiriMachine {
865
+ threads,
866
+ tls,
867
+ env_vars,
868
+ main_fn_ret_place,
869
+ argc,
870
+ argv,
871
+ cmd_line,
872
+ extern_statics,
873
+ dir_handler,
874
+ borrow_tracker,
875
+ data_race,
876
+ intptrcast,
877
+ file_handler,
878
+ tcx : _,
879
+ isolated_op : _,
880
+ validate : _,
881
+ enforce_abi : _,
882
+ clock : _,
883
+ layouts : _,
884
+ static_roots : _,
885
+ profiler : _,
886
+ string_cache : _,
887
+ exported_symbols_cache : _,
888
+ panic_on_unsupported : _,
889
+ backtrace_style : _,
890
+ local_crates : _,
891
+ rng : _,
892
+ tracked_alloc_ids : _,
893
+ check_alignment : _,
894
+ cmpxchg_weak_failure_rate : _,
895
+ mute_stdout_stderr : _,
896
+ weak_memory : _,
897
+ preemption_rate : _,
898
+ report_progress : _,
899
+ basic_block_count : _,
900
+ external_so_lib : _,
901
+ gc_interval : _,
902
+ since_gc : _,
903
+ num_cpus : _,
904
+ page_size : _,
905
+ stack_addr : _,
906
+ stack_size : _,
907
+ collect_leak_backtraces : _,
908
+ allocation_spans : _,
909
+ } = self ;
910
+
911
+ threads. visit_prov ( visit) ;
912
+ tls. visit_prov ( visit) ;
913
+ env_vars. visit_prov ( visit) ;
914
+ dir_handler. visit_prov ( visit) ;
915
+ file_handler. visit_prov ( visit) ;
916
+ data_race. visit_prov ( visit) ;
917
+ borrow_tracker. visit_prov ( visit) ;
918
+ intptrcast. visit_prov ( visit) ;
919
+ main_fn_ret_place. visit_prov ( visit) ;
920
+ argc. visit_prov ( visit) ;
921
+ argv. visit_prov ( visit) ;
922
+ cmd_line. visit_prov ( visit) ;
923
+ for ptr in extern_statics. values ( ) {
924
+ ptr. visit_prov ( visit) ;
925
+ }
926
+ }
846
927
}
847
928
848
929
/// A rustc InterpCx for Miri.
0 commit comments