Commit 29df4c8f authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder

unsafe: document use of &^ to round/align pointers

Follow-up to CL 27156

Change-Id: I4f1cfced2dced9c9fc8a05bbc00ec4229e85c5c9
Reviewed-on: https://go-review.googlesource.com/27314Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent a7277e54
...@@ -76,8 +76,10 @@ type ArbitraryType int ...@@ -76,8 +76,10 @@ type ArbitraryType int
// // equivalent to e := unsafe.Pointer(&x[i]) // // equivalent to e := unsafe.Pointer(&x[i])
// e := unsafe.Pointer(uintptr(unsafe.Pointer(&x[0])) + i*unsafe.Sizeof(x[0])) // e := unsafe.Pointer(uintptr(unsafe.Pointer(&x[0])) + i*unsafe.Sizeof(x[0]))
// //
// It is valid both to add and to subtract offsets from a pointer in this way, // It is valid both to add and to subtract offsets from a pointer in this way.
// but the result must continue to point into the original allocated object. // It is also valid to use &^ to round pointers, usually for alignment.
// In all cases, the result must continue to point into the original allocated object.
//
// Unlike in C, it is not valid to advance a pointer just beyond the end of // Unlike in C, it is not valid to advance a pointer just beyond the end of
// its original allocation: // its original allocation:
// //
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment