about summary refs log tree commit diff
path: root/compiler/rustc_data_structures/src
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2023-08-19 12:49:07 +0200
committerRalf Jung <post@ralfj.de>2023-08-19 12:50:26 +0200
commit132a2c6cf29649d0b57f3efe9fe72beef8fc7c9e (patch)
treed44a63721d075e9876dd411182eef6cd12755045 /compiler/rustc_data_structures/src
parentd06ca0ffaf4ac72732665f99dd9ad962194cd0b3 (diff)
downloadrust-132a2c6cf29649d0b57f3efe9fe72beef8fc7c9e.tar.gz
rust-132a2c6cf29649d0b57f3efe9fe72beef8fc7c9e.zip
elaborate a bit on the (lack of) safety in 'Mmap::map'
Diffstat (limited to 'compiler/rustc_data_structures/src')
-rw-r--r--compiler/rustc_data_structures/src/memmap.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler/rustc_data_structures/src/memmap.rs b/compiler/rustc_data_structures/src/memmap.rs
index ca908671ae5..30403a61442 100644
--- a/compiler/rustc_data_structures/src/memmap.rs
+++ b/compiler/rustc_data_structures/src/memmap.rs
@@ -11,9 +11,14 @@ pub struct Mmap(Vec<u8>);
 
 #[cfg(not(target_arch = "wasm32"))]
 impl Mmap {
+    /// # Safety
+    ///
+    /// The given file must not be mutated (i.e., not written, not truncated, ...) until the mapping is closed.
+    ///
+    /// However in practice most callers do not ensure this, so uses of this function are likely unsound.
     #[inline]
     pub unsafe fn map(file: File) -> io::Result<Self> {
-        // Safety: this is in fact not safe.
+        // Safety: the caller must ensure that this is safe.
         unsafe { memmap2::Mmap::map(&file).map(Mmap) }
     }
 }