Invalid conversions of 'uintptr' to 'unsafe.Pointer'
Reports possibly incorrect conversions of uintptr
to unsafe.Pointer
.
A conversion from uintptr
to unsafe.Pointer
is invalid if it implies that there is a uintptr
-typed word in memory that holds a pointer value, because that word will be invisible to stack copying and to the garbage collector.
Example of invalid usage:
nums := []int8{42, 24}
ptr := unsafe.Pointer(&nums[0])
addr := uintptr(ptr) // address is stored to a local variable
ptr = unsafe.Pointer(addr + uintptr(1))
Example of valid usage:
nums := []int8{42, 24}
ptr := unsafe.Pointer(&nums[0])
ptr = unsafe.Pointer(uintptr(ptr) + uintptr(1))
Locating this inspection
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
GoVetUnsafePointer- Via Settings dialog
Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Go, 243.23131 |
Last modified: 03 December 2024