Commit Graph

3 Commits

Author SHA1 Message Date
Brad Fitzpatrick 718ddee956 Revert "go/analysis/passes/atomicalign: handle pointers to struct"
This reverts CL 158999, commit 8dbcc66f33.

Reason for revert: broke the build, nobody ever ran trybots

Change-Id: I2180ed8f9281b413b2ffea086abbd09fbfc3c99e
Reviewed-on: https://go-review.googlesource.com/c/160839
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
2019-02-02 20:26:10 +00:00
Aurélien Rainone 8dbcc66f33 go/analysis/passes/atomicalign: handle pointers to struct
The atomicalign checker detects non-64-bit aligned struct field
arguments to sync/atomic functions but currently misses out cases
where the struct variable identifier is a pointer to struct. This
is very common as it happens when the 64-bit field is accessed
in a method with pointer receiver, where the struct is itself the
method receiver. Add some tests to cover that new case.

While I'm at it, fix some typos.

Change-Id: I582cf5b7286b11285010f085045f58dc636ef3ee
Reviewed-on: https://go-review.googlesource.com/c/158999
Reviewed-by: Alan Donovan <adonovan@google.com>
2019-01-31 14:20:11 +00:00
Aurélien Rainone 24cd39ecf7 go/analysis/passes/atomicalign: add atomicalign ckecker
The atomicalign Analyzer checks the alignment of 64-bits variables
accessed atomically via sync/atomic functions on 32-bits
architectures. Per the sync/atomic BUG note those variables must
be 64-bits aligned, otherwise a runtime panic is issued.

The analyzer only shows and runs on 32-bits architectures.

This CL should not introduce any false positives.

Add some tests in testdata/src/a to verify the analyzer behavior
on affected architectures plus some very basic test to verify that
no warning is generated on non-affected ones.

Fixes golang/go#11891

Change-Id: I02cfc574883564cd2a213a92d33bda3cc9a1ea98
Reviewed-on: https://go-review.googlesource.com/c/158277
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
2019-01-21 14:31:47 +00:00