Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/compile: if -G=3 fully enabled in compiler, 'go test -count=1 -race -run=TestOutput runtime/race" fails #46004

danscales opened this issue May 6, 2021 · 1 comment


Copy link

@danscales danscales commented May 6, 2021

For current master, if you enable -G=3 in the compiler by adding 'Flag.G = 3' at the end of ParseFlags in cmd/compile/internal/base/flag.go, then this command fails

go test -count=1 -race -run=TestOutput runtime/race

This is one of the commands that is run under the "##### Testing race detector" section of the all.bash tests.

The reason is that types2 reports an error "main.go:4:2: x declared but not used" (which does seem most correct) for:

package main
func main() {
        done := make(chan bool)
        x := 0
        go func() {
                x = 42
                done <- true
        x = 43

whereas the current compiler/typechecker (-G=0) does not report any error. (Note that 'go vet' does return the error "vet: ./test.go:4:2: x declared but not used".)

So, we have to decide if we can make this change in the behavior in the typechecker or not. If not, then we need to "fix" types2 to not report this error.

If it's OK to have this change in behavior, then we can make the test work for both by changing the test program (occurs several times in runtime/race/output_test.go) to end with:

        _ = x
@danscales danscales added this to the Go1.18 milestone May 6, 2021
Copy link

@griesemer griesemer commented May 6, 2021

See also: #8560 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants