正しくないと思われる uintptr から unsafe.Pointer への変換を報告します。

uintptr から unsafe.Pointer への変換は、ポインターの値を保持している uintptr 型の単語がメモリに格納されている場合は無効です。その値はスタックコピーとガベージコレクターに対して不可視になるためです。

無効な使用例:

nums := []int8{42, 24}
ptr := unsafe.Pointer(&nums[0])
addr := uintptr(ptr) // アドレスがローカル変数に格納されます
ptr = unsafe.Pointer(addr + uintptr(1))

有効な使用例:

nums := []int8{42, 24}
ptr := unsafe.Pointer(&nums[0])
ptr = unsafe.Pointer(uintptr(ptr) + uintptr(1))