@@ -504,22 +504,23 @@ impl Stacks {
504
504
// `Global` memory can be referenced by global pointers from `tcx`.
505
505
// Thus we call `global_base_ptr` such that the global pointers get the same tag
506
506
// as what we use here.
507
- // `ExternStatic` is used for extern statics, and thus must also be listed here.
508
- // `Env` we list because we can get away with precise tracking there.
507
+ // `ExternStatic` is used for extern statics, so the same reasoning applies.
508
+ // The others are various forms of machine-managed special global memory, and we can get
509
+ // away with precise tracking there.
509
510
// The base pointer is not unique, so the base permission is `SharedReadWrite`.
510
- MemoryKind :: Machine (
511
+ MemoryKind :: CallerLocation
512
+ | MemoryKind :: Machine (
511
513
MiriMemoryKind :: Global
512
514
| MiriMemoryKind :: ExternStatic
513
515
| MiriMemoryKind :: Tls
514
- | MiriMemoryKind :: Env ,
516
+ | MiriMemoryKind :: Env
517
+ | MiriMemoryKind :: Machine ,
515
518
) => ( extra. global_base_ptr ( id) , Permission :: SharedReadWrite ) ,
516
- // Everything else we only track precisely when raw pointers are tagged, for now.
517
- MemoryKind :: CallerLocation
518
- | MemoryKind :: Machine (
519
+ // Heap allocations we only track precisely when raw pointers are tagged, for now.
520
+ MemoryKind :: Machine (
519
521
MiriMemoryKind :: Rust
520
522
| MiriMemoryKind :: C
521
- | MiriMemoryKind :: WinHeap
522
- | MiriMemoryKind :: Machine ,
523
+ | MiriMemoryKind :: WinHeap ,
523
524
) => {
524
525
let tag =
525
526
if extra. track_raw { Tag :: Tagged ( extra. new_ptr ( ) ) } else { Tag :: Untagged } ;
0 commit comments