From 8d8dab34eb3bedfbb0e384deaeb03a9395db89a8 Mon Sep 17 00:00:00 2001
From: Russ Cox uintptrs
in pointer values are illegal and will crash if the runtime detects the behavior.
+to store integers in pointer-typed values are illegal and will crash if the runtime detects the behavior.
Programs that use package unsafe to store pointers
-in uintptr
values are also illegal but more difficult to diagnose during execution.
+in integer-typed values are also illegal but more difficult to diagnose during execution.
Because the pointers are hidden from the runtime, a stack expansion or garbage collection
may reclaim the memory they point at, creating
dangling pointers.
-Updating: Code that converts a uintptr
value stored in memory
-to unsafe.Pointer
is illegal and must be rewritten.
+Updating: Code that uses unsafe.Pointer
to convert
+an integer-typed value held in memory into a pointer is illegal and must be rewritten.
Such code can be identified by go vet
.