about summary refs log tree commit diff
diff options
context:
space:
mode:
authorKornel <kornel@geekhood.net>2024-07-17 22:39:31 +0100
committerKornel <kornel@geekhood.net>2024-08-18 22:12:23 +0100
commit56fb89acee048c80b595f42cdcb749ed39a43e10 (patch)
treeb45bdaf1a474bc2c95343732b6be228066ae9469
parent6de928dce9472b864f4e5d590dd7aa2075cb7551 (diff)
downloadrust-56fb89acee048c80b595f42cdcb749ed39a43e10.tar.gz
rust-56fb89acee048c80b595f42cdcb749ed39a43e10.zip
Document futility of printing temporary pointers
-rw-r--r--library/core/src/fmt/mod.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/library/core/src/fmt/mod.rs b/library/core/src/fmt/mod.rs
index 45c2b6a6a0f..8fc43cb1875 100644
--- a/library/core/src/fmt/mod.rs
+++ b/library/core/src/fmt/mod.rs
@@ -975,9 +975,17 @@ pub trait UpperHex {
 /// `p` formatting.
 ///
 /// The `Pointer` trait should format its output as a memory location. This is commonly presented
-/// as hexadecimal.
+/// as hexadecimal. For more information on formatters, see [the module-level documentation][module].
 ///
-/// For more information on formatters, see [the module-level documentation][module].
+/// Printing of pointers is not a reliable way to discover how Rust programs are implemented.
+/// The act of reading an address changes the program itself, and may change how the data is represented
+/// in memory, and may affect which optimizations are applied to the code.
+///
+/// The printed pointer values are not guaranteed to be stable nor unique identifiers of objects.
+/// Rust allows moving values to different memory locations, and may reuse the same memory locations
+/// for different purposes.
+///
+/// There is no guarantee that the printed value can be converted back to a pointer.
 ///
 /// [module]: ../../std/fmt/index.html
 ///